c语言读取文件数据乱码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言读取文件数据乱码相关的知识,希望对你有一定的参考价值。
参考技术A 把打开方式改为"r"以及把读取信息用fscanf吧,因为如果你是原先先把kk.txt写好,然后再用你的程序打开它的话,由于里面有换行符以及空格等内容,除非开始你是用fwrite函数写入的结构信息,否则fread会把这些都作为信息读取的(也就是说它读到一个struct
Student_type大小的数据就结束,而不管这里面到底存放的是什么,这个过程中读到的可能不是一个完整的结构的数据),所以就会出现你所说的乱码。 参考技术B 原因很简单:把while(!feof(fp))中的!feof(fp)改成1,然后在fscanf那一句后面加一句if(feof(fp))
break;就可以了。因为feof这个函数要在逻辑上紧跟在“读操作”语句后才能正确生效,而你的写法在第一次进入while时还没有读文件,feof(fp)判断什么?就是这里造成了最后文件越界了还当作正常数据在处理,当然就是乱码了……还有个写法就是把fscanf也写在while的()中,用逗号分开再写!feof(fp),while的体里就不再写fscanf了。这样逻辑很浅析。不过你的fscanf语句太长,写在()中不好看。有兴趣你可以试一下。
Qt读取文本文件乱码怎么办
参考技术A 设置编码读取:QTextStream in(&file);
in.setCodec("UTF-8");
while (!in.atEnd())
QString strRead = in.readLine();
以上是关于c语言读取文件数据乱码的主要内容,如果未能解决你的问题,请参考以下文章
如下:为啥C语言读取文件中的数据并输出时有乱码出现?本来输入的是数字,然后从文件中读取后就变汉字