免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1114 | 回复: 3
打印 上一主题 下一主题

求助,关于文件操作 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-24 18:02 |只看该作者 |倒序浏览
我的这段代码会把conf里面最后一行内容显示2次,想不明白,求教。谢谢。

  1. #include <stdio.h>

  2. int main(int argc, char** argv)
  3. {
  4.         FILE* fp;
  5.         char buf[1024];
  6.         fp = fopen("conf","r");
  7.         if(fp==NULL)
  8.                 return 0;
  9.         while(!feof(fp))
  10.         {
  11.                 fgets(buf, 1024, fp);
  12.                 printf("%s", buf);
  13.         }

  14.         fclose(fp);

  15.         return 0;
  16. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2005-11-24 18:09 |只看该作者
  1.    
  2. while(!feof(fp))
  3. {
  4.     if (NULL != fgets(buf, 1024, fp))
  5.          printf("%s", buf);
  6. }
复制代码

或者

  1. while(!feof(fp))
  2. {
  3.     fgets(buf, 1024, fp))
  4.     printf("%s", buf);
  5.     buf[0] = '\0';
  6. }
复制代码

最后一次执行时,buf缓冲区的内容保持为上一次的内容,所以会输出两次相同的。

论坛徽章:
0
3 [报告]
发表于 2005-11-24 18:12 |只看该作者
明白了,谢谢。

论坛徽章:
0
4 [报告]
发表于 2005-11-24 18:15 |只看该作者
  1. while(!fgets(buf, 1024, fp))
  2. {
  3.         printf("%s", buf);
  4. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP