C语言读取文件出现错误,读取了两遍而且有乱码是什么情况

C语言读取文件出现错误,读取了两遍而且有乱码是什么情况,第1张

程序执行两边,肯定是代码问题。

数据搭洞纯对计算机而言就是2进制,你看乱码说明显示的时候没有对应字符集,你把原文知咐件打开看有乱码没。

或者你文件有中文,你试试用全颤御部英文和数字的文件读取。

另外,文件有格式的话,你换fscanf和fprintf看看。

原因很简单:把while(!feof(fp))中的!feof(fp)改成1,然后在fscanf那一句后面加一句if(feof(fp))

break就可以了。因为feof这个函数要在逻辑上紧跟在“读 *** 作”语句后才能正确生效,而你的写法在第一次进入while时还没有读文件,feof(fp)判断物橘什么?就是这里造成了镇胡最后文件越界罩旅团了还当作正常数据在处理,当然就是乱码了……还有个写法就是把fscanf也写在while的()中,用逗号分开再写!feof(fp),while的体里就不再写fscanf了。这样逻辑很浅析。不过你的fscanf语句太长,写在()中不好看。有兴趣你可以试一下。

如果数据文件是用fprintf()函数写入的,则用fscanf()函数读出,要点是两个函数的写/读格式搜颂要一致。

如果数据文件是用fwrite()函数写入的,则用世枣郑fread()函数读岩此出,写/读单位是sizeof(struct

student)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12267163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存