fwrite写的字节多于它所说的字节数

时间:2012-08-13 11:56:48

标签: visual-c++ fwrite

我正在写一个 unsigned char 缓冲区到文件(C ++):

FILE* f = fopen("out.data","wb");
size_t count = fwrite((const void *)pBuf, sizeof(unsigned char), dl, f);

当我阅读它时,我获得的字节数多于我期望得到的'dl'。谁知道为什么? 有一个类似的问题,原因是'fopen(...,“w”)'而不是'fopen(...,“wb”)'。

我使用Matlab读取文件(在Matlab的fopen中尝试'r'和'rb'),如果它与它有关...

谢谢!

1 个答案:

答案 0 :(得分:0)

好的!一个简明的问题,这是我最好的选择:

  • dl变量的价值是什么?
  • pBuf指出了什么 - 逻辑上引用了多少字节?
  • 您检查了返回值吗?它返回写入的元素数,在这种情况下,将是字节。
  • 关闭文件后,您是否检查了文件的实际大小,而不是文件 on-disk 的大小 - 是否与dl匹配/或count
  • 您如何打开文件并稍后阅读内容,以文本模式或二进制模式阅读。

PS:尝试更具表现力,在你的问题中加入更多相关的词语。