这是我第一次发帖,请多多包涵。
我有一个文件,我需要通过重定向读取标头,并且我正在使用 cin 来捕获字节并存储它们以供以后使用。
该文件的 hexdump 是:
42 02 02 02 ff 0a 00 00 00 19 00 00 00 ff
是)我有的:
char magic, cs1, cs2, cs3, selector;
char temp1, temp2, temp3, temp4;
cin >> magic;
cin >> cs1;
cin >> cs2;
cin >> cs3;
cin >> selector;
//
cin >> temp1;
cin >> temp2;
cin >> temp3;
cin >> temp4;
前5个字节代表magicNumber、channelSize、channelSize、channelSize、selectorBit。接下来的 4 个字节是一个宽度值,在 LSB 到 MSB 中分成 4 个字节。
当我在 0a 上使用 cin 时,它是十六进制的 10(我想要的值),它会将其读取为换行符并因此跳过它。
cout << temp1 << endl;
cout << temp2 << endl;
cout << temp3 << endl;
cout << temp4 << endl;
这将包含(十六进制):
0
0
0
19
cin 跳过 0a 并获取下一个值。有没有办法强制它读取 0a?
如果需要更多信息,请告诉我。谢谢
——凯尔