读书人

请求FILE *fp读unsigned short数据

发布时间: 2012-07-31 12:33:46 作者: rapoo

请求高手指点,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+");试试。

读书人网 >C++

热点推荐