【适用情况】
当有一个文件,并知道数据在其中的存储方式,比如txt文件,所有数据都是以"%s%s%s%d"格式存储的,例如:
- 1 计算机 xiaoming 1
- 1 计算机 xiaoguang 0
- 2 数学 lili 0
- 2 数学 hongli 1
- 3 物理 liwan 0
- 3 物理 heyang 1
- 4 文学 jianming 0
- 4 文学 huangong 1
但是不知道文件的长度,如何用scanf以同样的格式读取整个文件。
- void InitRecord()
- {
- Depart d;
- int i;
- FILE *dep_fp; // 学院信息文件
- FILE *sp_fp; // 比赛项目文件
- if((dep_fp=fopen("depart.txt","r"))==NULL) // 打开文件
- {
- printf("初始化院系信息失败!");
- return;
- }
-
- for(i=0;!feof(dep_fp);++i)
- {
- fscanf(dep_fp,"%s%s%s%d",d.dep_num,d.dep_name,d.stu_name,&d.stu_***);
- printf("%s %s %s %d\n",d.dep_num,d.dep_name,d.stu_name,d.stu_***);
-
- }
-
- fclose(dep_fp);
- }
通用解决方法:
- int []account;
- for(int i=0;!feof(file_p);++i) /*file_p是文件标识符*/
- {
- fscanf(file_p,"%d",account[i]);
- }
feof()这个函数的功能
参考资料:
阅读(1929) | 评论(0) | 转发(0) |