免费注册 查看新帖 |

Chinaunix

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

关于文本文件的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-10 19:24 |只看该作者 |倒序浏览
我写了一段代吗,想打印出一个文本文件的内容如下


  1. do
  2. {
  3.    ch=fgetc(filename);
  4.    printf("ch");
  5. }
  6. while (ch!=EOF);
复制代码


可是每次都打印完文件后都会打印出很多问号最后提示:
Segmentation fault
这是怎么回事呀??

论坛徽章:
0
2 [报告]
发表于 2003-03-11 09:19 |只看该作者

关于文本文件的问题

printf("%c", ch);

论坛徽章:
0
3 [报告]
发表于 2003-03-11 10:43 |只看该作者

关于文本文件的问题

首先应该是printf("%c",ch);
其次在判断文件结束的时候最好别用eof。
而用feof函数来判断文件结束。
#include<stdio.h>;
int feof(FILE *stream);
此函数到达文件尾时返回非零值,否则为零。

论坛徽章:
0
4 [报告]
发表于 2003-03-11 12:18 |只看该作者

关于文本文件的问题

完全正确

论坛徽章:
0
5 [报告]
发表于 2003-03-11 22:56 |只看该作者

关于文本文件的问题

二楼这位大侠说的有理,让您见笑了。

不过关键不在这里,后来我琢磨了一下下。
在显示完这个文件的最后一个字符后循环还会继续因为ch的值还是此文件的最后一个字符,不是EOF,所以我只好改成:

  1. ch=fgetc(filename);
  2. do
  3. {
  4.     printf("%c",ch);
  5.     ch=fgetc(filename);
  6. }
  7. while (ch!=EOF);
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP