关于C语言读取文件结尾的问题

请问,我弄个小程序,从A文件中读取内容输出到B文件,原先读A文件结尾的判断条件为EOF,可是后来A文件末尾多了个“]”符号,在不删除它的情况下,我应该怎么做文件结束条件啊... 请问,我弄个小程序,从A文件中读取内容输出到B文件,原先读A文件结尾的判断条件为EOF,可是后来A文件末尾多了个“]”符号,在不删除它的情况下,我应该怎么做文件结束条件啊?谢谢各位 展开
 我来答
潮范君
推荐于2018-05-11 · 知道合伙人软件行家
潮范君
知道合伙人软件行家
采纳数:1440 获赞数:2874
从事软件开发工作一年有余,主要C++方向。

向TA提问 私信TA
展开全部
可以使用while循环
如:
while(fscanf(fp,"%s",str)!=EOF) 其中这个判断 EOF 就是是否读取到文件结尾
是 end of file的缩写.
lsslddd
2012-08-10 · TA获得超过936个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:421万
展开全部
不做任何改动

文件结束时相关函数返回EOF, 并不是说文件里有个符号是EOF, 根本就不存在所谓的文件结束符,而是到了文件结束,就什么也读不到了,这种情况下函数返回一个EOF,这个EOF并不是文件的内容(至于判断文件结束,不同的系统有不同的底层实现,这不是C语言的事情)
追问
那请问,我该怎么办啊?有这个符号就死循环啊
追答
贴代码看看
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尔绿柳隆巳
2020-05-19 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:745万
展开全部
c语言程序编译不是c语言学习的范围,你说的这个情况是通过编译程序将你写的源程序*.c编译成可执行文件,如果你需要修改就必须有这个程序的源代码,也就是你写的*.c。修改只能在这上面修改。所以程序的源代码都是很重要的,需要好好保存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eab688
2012-08-10 · TA获得超过4690个赞
知道大有可为答主
回答量:962
采纳率:50%
帮助的人:942万
展开全部
EOF是特殊符号,永远在文件最后一个。你的程序不用任何改动,判断EOF即可。
追问
可是不是这样的呀,要是有这个符号,就是死循环啦,没它就一切正常。
我是多去多行数据,判断的条件就是读完每行是否=EOF,现在就不行了
追答
只要行末是EOF就是文件结束了咯,不是很明白你是怎么判断的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jzlovesf1
2012-08-10 · TA获得超过279个赞
知道答主
回答量:122
采纳率:0%
帮助的人:104万
展开全部
你能是你顺序错了把,要不就是你把eof读成char了
int temp;
while((temp=fgetc(fp))!=EOF){

...
...
}
试试
追问
我用的是这个语句:多行数据
while(fscanf(fa,"%d%s%s\n",&a1,a2,a3)!=EOF
和您的应该是一个意思吧
追答
fscanf return0代表读完了
说以你试试
while(fscanf(fa,"%d%s%s\n",&a1,a2,a3)!=0)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式