请问如何解决将一些小于255的unsigned integer,利用ofstream输入到二进制文件中出现的奇怪问题
lgfei 2005-04-16 08:18:54 我在vc6.0下面需要将一些数据保存到一个二进制文件。
代码如下:
ofstream outFile("C:\\Python23\\test\\ctest3.plt",ios::binary);
for (i=0;i<1000;i++)
outFile<<hex<<GetValue(i);//函数GetValue(i)返回一个0到255之间的整数
但是我发现一个奇怪的问题,就是当数字比较小的时候,保存的数据将变成对应的字符。
例如 当GetValue(i)返回值为1的时候,文件中对应位置的值是0x31,即字符'1'对应的Ascii码值,而不是我所希望的'0x1'。
不过当数字较大时,例如255,那么写入文件中的数据便是'0xff',这时又是正确的。
同时我还得输入一些字符串到这个文件中,我发现有些特殊字符根本无法输入。例如
outFile<<"\x00\x01\x08\x08\x08\x08";
在文件的相应位置,这段内容根本就找不到,也就是说,根本没有写入文件中。
百思不得其解。
请各位大侠分析原因,给出对策。