gpt4 book ai didi

时间:2018-02-08 标签:c++cin>>byte strangebehavior

转载 作者:行者123 更新时间:2023-11-30 02:46:41 25 4
gpt4 key购买 nike

我有以下代码

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

最佳答案

字符 0x09 到 0x0D 是空白,因此在提取值时被 operator>> 忽略。如果您想要读取未格式化的字符,请使用 std::cin.get() 重载之一(如果您在 Windows 上编程,回车符 (0x0D) 仍将作为行的一部分被忽略除非您以二进制模式重新打开标准输入流,否则结束。

您还可以使用 std::noskipws 操纵符来禁用格式化输入函数的前导空格跳过。

关于时间:2018-02-08 标签:c++cin>>byte strangebehavior,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23370490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com