【发布时间】:2010-01-08 21:51:18
【问题描述】:
我正在尝试使用 fstream 读取 bmp 文件。 但是它会跳过 08 和 0E 之间的值(十六进制) 例如,对于值 42 4d 8a 16 0b 00 00 00 00 00 36
它读取
42 4d 8a 16 00 00 00 00 00 36
跳过 0b 就像它甚至不存在于文档中一样。
怎么办?
代码:
ifstream in;
in.open("ben.bmp", ios::binary);
unsigned char a='\0';
ofstream f("s.txt");
while(!in.eof())
{
in>>a;
f<<a;
}
编辑:使用in.read(a,1); 而不是in>>a; 可以解决阅读问题,但我需要编写无符号字符,而f.write(a,1); 不接受无符号字符。有人有用无符号字符写的功能吗?
【问题讨论】:
-
贴一些说明问题的代码。
-
>> 运算符跳过空格。
-
您似乎正在尝试将文件读取为“十六进制”值。不要忘记在使用流之前插入
hex操纵器。