首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

fflush的有关问题

2014-01-22 
fflush的问题使用fwrite频繁写文件,每次写固定的几十个字节,写完之后都用fflush函数刷新缓冲区。这样会造成

fflush的问题
使用fwrite频繁写文件,每次写固定的几十个字节,写完之后都用fflush函数刷新缓冲区。
这样会造成文件错误吗?
我在具体实行的时候,查看文件的二进制数据,发现每次写的数据包多了一个字节。
请问是fflush造成的结果吗?
[解决办法]
可能是以文本方式打开,这样写入'\n'时会多一个'\r'字节。

引用:
使用fwrite频繁写文件,每次写固定的几十个字节,写完之后都用fflush函数刷新缓冲区。
这样会造成文件错误吗?
我在具体实行的时候,查看文件的二进制数据,发现每次写的数据包多了一个字节。
请问是fflush造成的结果吗?

[解决办法]
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。

不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待

fopen("...","...b");fread,fwrite,fclose  //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了

“多一少一”问题占程序员常犯错误的10%以上!

热点排行