如何读取包含学生姓名和标记并输入的txt文件 进入一系列结构。
maximum allowable records are 7: e.g. James 45 Mary 70 Rob 100
答案 0 :(得分:1)
首先,定义结构。该结构描述了记录的内容;它包含哪些数据。在这里你有一个学生的名字和他或她的标记。
其次,您需要准备数组以将结构的对象写入。您已从问题描述中了解到,不允许超过7名学生,因此您可以将数组的长度定义为该数字。
接下来,打开文本文件。
最后写一个循环,从文件中输入学生姓名的字符串和整数(或者如果你选择的话是浮点数)作为他们的标记。在循环中为每条记录创建一个结构,并将结构插入到数组中。
当然,不要忘记在完成后关闭文件。
这就是它的全部。如果您有任何语法或逻辑问题,请在评论中提问,我们很乐意为您提供帮助。
答案 1 :(得分:0)
阅读fopen:http://linux.die.net/man/3/fopen
的手册页这应该会让你在某个地方开始。
此外,fread和fgets的手册页可能会有所帮助。有许多方法可以从文件中读取,您选择的路径将取决于许多因素,例如文件的结构和应用程序中所需的安全性。
答案 2 :(得分:-1)
发现此代码足够相似,可以帮助您完成所需的工作。
#include <stdio.h>
#include <string.h>
/* Sample data lines
5 0 Wednesday Sunny
6 2 Thursday Wet
*/
int main() {
/* Define a daydata structure */
typedef struct {
int n_adults; int n_kids;
char day[10]; char weather[10];
} daydata ;
daydata record[30];
FILE * filehandle;
char lyne[121];
char *item;
int reccount = 0;
int k;
/* Here comes the actions! */
/* open file */
filehandle = fopen("newstuff.txt","r");
/* Read file line by line */
while (fgets(lyne,120,filehandle)) {
printf("%s",lyne);
item = strtok(lyne," ");
record[reccount].n_adults = atoi(item);
item = strtok(NULL," ");
record[reccount].n_kids = atoi(item);
item = strtok(NULL," ");
strcpy(record[reccount].day,item);
item = strtok(NULL,"\n");
strcpy(record[reccount].weather,item);
printf("%s\n",record[reccount].day);
reccount++;
}
/* Close file */
fclose(filehandle);
/* Loop through and report on data */
printf("Weather Record\n");
for (k=0; k<reccount; k++) {
printf("It is %s\n",record[k].weather);
}
}
http://www.wellho.net/resources/ex.php4?item=c209/lunches.c
如果您在更改代码时出现问题以满足您的需求,请使用您尝试过的代码。