【发布时间】:2017-11-01 00:23:14
【问题描述】:
我必须制作需要用户的程序:
输入姓氏(最多 17 个字母)
输入姓名(最多 11 个字母)
输入主题(最多 20 个字母)
输入点数(0 到 50 之间的数字)
输入需要重复并在你写END为姓后结束,然后关闭txt文件
之后,我必须编写打开 txt 文件的函数,读取它并以这种格式打印其中的所有数据:
surname|name|subject|points
-----------------------------
-----------------------------
doe|jane|math|36
doe|john|programming|45
在同一个函数中,我必须找到哪个条目的点数最少,然后打印它(如果有两个点数相同,则打印找到的最后一个)。之后,在同一个函数中,我必须计算文件的大小并以字节为单位打印。
我设法编写代码来输入名称并将其写入 txt 文件,但我无法制作程序的其余部分,有人知道怎么做吗?
这是我的代码:
#include <stdio.h>
int main()
{
FILE *inputfile = NULL;
FILE *outfile = NULL;
struct imenik
{
char surname[17 + 1];
char name[11 + 1];
char subject[20 + 1];
int points;
} imen;
outfile = fopen("new.txt", "w");
printf("Enter surname: ");
scanf("%s ", imen.surname);
printf("Enter name: ");
scanf("%s ", imen.name);
printf("Enter course: ");
scanf("%s ", imen.subject);
printf("Enter points (0 - 50): ");
scanf("%d ", &imen.points);
printf("\n %s|%s|%s|%d", imen.name, imen.surname, imen.subject, imen.points);
fprintf(outfile, "\n %s|%s|%s|%d", imen.name, imen.surname, imen.subject, imen.points);
fclose(outfile);
return 0;
}
【问题讨论】:
-
阅读关键字“循环”和“字符串长度”,这应该可以帮助您走得更远。在某种程度上,您可以就似乎是家庭作业的内容提出具体问题。
-
不检查 fopen() 和 fprintf() 的结果是自找麻烦。
-
阅读
fopen和getline的手册页,这可以帮助您使其正常工作
标签: c function file struct fopen