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

fwrite()函数的一个奇怪有关问题.

2013-01-08 
fwrite()函数的一个奇怪问题..本帖最后由 weiwuyuan 于 2012-12-26 22:33:20 编辑BYTE t 0FILE* pFile

fwrite()函数的一个奇怪问题..
本帖最后由 weiwuyuan 于 2012-12-26 22:33:20 编辑


BYTE t = 0;
FILE* pFile = fopen("out.dat", "wb");
fwrite(&t, 1, 10, pFile);
fclose(pFile);


这代码是写10个0到out.dat文件中,可是为什么写出的数据不全是0呢?
结果写入的数据是这样子的:
[0]0
[1]204
[2]204
[3]204
[4]204
[5]181
[6]145
[7]192
[8]116
[9]184

怎么会是这样?
[解决办法]
修正一下:
BYTE t = 0;
FILE* pFile = fopen("out.dat", "wb");
for(int i=0;i<10;++i){
 fwrite(&t, 1, sizeof(t), pFile);
}
fclose(pFile);

[解决办法]
引用:
那如果是:
fwrite(&amp;t, 2, 10, pFile);
是不是写 &amp;t到&amp;t+10*2的数据?


是这样的

一般其内部实现是循环调用memcpy

热点排行