c语言读取txt文件数据时最后有一串乱码怎么办

c语言读取txt文件数据时最后有一串乱码怎么办,第1张

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

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

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

出现这个异常的原因很有可能是字符串str的长度比表中name这一列定义的最大长度大,将name的最大长度增大就可以解决这问题。 另外提醒一下,str = sr.ReadLine().Trim()这样写是不对的,因为当ReadLine()读取完文件的时候会返回null,这时调用Trim()就会抛出NullReferenceException异常了。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存