fflush的有关问题
fflush的问题使用fwrite频繁写文件,每次写固定的几十个字节,写完之后都用fflush函数刷新缓冲区。这样会造成
fflush的问题
使用fwrite频繁写文件,每次写固定的几十个字节,写完之后都用fflush函数刷新缓冲区。
这样会造成文件错误吗?
我在具体实行的时候,查看文件的二进制数据,发现每次写的数据包多了一个字节。
请问是fflush造成的结果吗?
[解决办法]
可能是以文本方式打开,这样写入'\n'时会多一个'\r'字节。
[解决办法]推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待
和
fopen("...","...
b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了
“多一少一”问题占程序员常犯错误的10%以上!