【发布时间】:2014-04-29 16:40:23
【问题描述】:
我有以下代码
unsigned char input;
vector <unsigned char> buffer;
while (cin >>input){
buffer.push_back(input);
}
for (int i=0;i<buffer.size();i++)
cout<<std::hex<<(int)buffer.at(i)<<endl;
我用二进制文件调用程序
./program <<binary_file
包括:(从十六进制编辑器查看)
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
但是我得到以下输出:
0
1
2
3
4
5
6
7
8
e
f
10
11
12
13
14
15
16
17
18
19
1a
1b
1c
1d
1e
1f
如您所见,缺少“9”、“a”、“b”、“c”、“d”。你能解释一下出了什么问题吗?我错过了一些重要的东西吗?谢谢
或者您能建议任何其他方式如何从 cin 加载二进制文件并将其存储在
vector<unsigned char> buffer
【问题讨论】: