0

我正在将一个无符号字符缓冲区写入文件(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' ),如果它与它有关......

谢谢 !

4

1 回答 1

0

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

  • 变量的值是dl多少?
  • 指向什么pBuf- 它在逻辑上引用了多少字节?
  • 你检查过返回值吗?它返回写入的元素数,在本例中为字节数。
  • 关闭文件后,您是否检查了文件的实际大小,而不是磁盘上文件的大小- 它是否与dl和/或count.
  • 您如何打开文件并稍后阅读内容,以文本模式或二进制模式阅读。

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

于 2012-08-13T15:37:50.203 回答