8
我在C++中使用ofstream fout("filename");
输出一个无符号字符数组,但它在它们之间产生一个虚假字符。这是使该问题的代码部分:为什么ofstream在0x0A之前插入一个0x0D字节?
for(int i = 0; i < 12; i++)
fout << DChuffTable[i];
,这是数组的定义:
unsigned char DChuffTable[12] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B};
在输出文件,我收到了假0x0D
0x09
和0x0A
之间。在打印之前,我在调试模式下检查了数组,并且没有改变。请告诉我你对这个问题的看法。
非常感谢,我没有想到这个问题。虽然我怀疑这个问题在linux中不会发生。对? – raven 2011-03-03 11:33:33
@raven:同样的情况适用,但是由于Unix系统使用“\ n”作为结束行,确实你不会注意到任何症状。尽管如此,它仍然是破碎的代码。 :) – 2011-03-03 12:17:09