c语言文件写入fwrite() 和 _write()写12个字符会多一个,为什么?

发布网友 发布时间:2024-10-24 03:44

我来回答

3个回答

热心网友 时间:2024-10-29 17:43

调用fwrite函数时,如果碰到换行符(0x0A),编译器会自动转换为回车换行符(0x0D 0x0A),然后写入文件。这样写入文件的数据就会与原始数据有差异。

热心网友 时间:2024-10-29 17:43

stream = freopen("test.txt","w+",stderr);
改为stream = freopen("test.txt","wb+",stderr);

热心网友 时间:2024-10-29 17:47

关于写的问题,1楼2楼解释和修改的很好,读的问题,是因为你写进去的是字符的assic码,比如c[1]=0,即assic码00被写进去文件,而00对应的字符是不可见的,所以读出来的就是乱码。
建议改为
for(i = 65; i < 67; i++)
c[i] = i;
试试,其中65代表的是字符‘A',以此类推
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com