Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2228437
  • 博文数量: 556
  • 博客积分: 11457
  • 博客等级: 上将
  • 技术积分: 5973
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 22:33
文章分类

全部博文(556)

文章存档

2013年(22)

2012年(74)

2011年(460)

分类: C/C++

2011-07-06 20:43:10

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