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

请求,FILE *fp读unsigned short数据,如何不对啊

2012-07-31 
请求高手指点,FILE *fp读unsigned short数据,怎么不对啊?CString FileName11111fpfopen(FileName,w+

请求高手指点,FILE *fp读unsigned short数据,怎么不对啊?
CString FileName="11111";
fp=fopen(FileName,"w+t");

unsigned short data[123];

OnTimer//定时将数据输出到文件中
{
  fwrite(data,sizeof(data_test),1,fp);
}

这样将数据输出到文件中,有什么不对吗?我这么将数据输出到文件中,经常出错,偶尔会多一两个字节,这是怎么回事啊?
但是如果用输入输出流,就一个字节都不差。

[解决办法]
我一般使用wb 说实话很少用t文本模式。
你试试 
fp=fopen(FileName,"wb");
[解决办法]
有没有关闭文件,fwrite好像是带缓存的,如果没关闭文件就还没写进去。
[解决办法]

探讨
引用:
有没有关闭文件,fwrite好像是带缓存的,如果没关闭文件就还没写进去。


整个过程就打开一次,关闭一次,这样也有问题吗?难道每写入一次都需要重新打开和关闭?

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

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

[解决办法]
建议fwrite和二进制文件联系起来,楼主还是使用fopen("","wb+");试试。

热点排行