gpt4 book ai didi

c++ - 如何以十六进制而不是 ASCII 符号显示实际值

转载 作者:搜寻专家 更新时间:2023-10-31 01:09:25 24 4
gpt4 key购买 nike

int main()
{
char B[76]={0};

ifstream infile;
infile.open("tworecords.dat", ios::binary);
infile.read(reinterpret_cast<char*>(B), sizeof (B));

cout << "Array B in hex" << endl;

for (int i = 0; i < 76; i++)
{
cout << hex << B[i] << " " << endl;;
}

return 0;


}

现在它正确读取数据,但将值打印为 ASCII 符号。我想在文件中输出实际的十六进制值。

例子:

013D76D6等等

最佳答案

将其转换为整数:

cout << hex << static_cast<int>(B[i]) << " " << endl;

或者,如果您不想转换,只需添加 0:

cout << hex << B[i]+0 << " " << endl;

但是您可能还想确保对于小于 16 的值,打印前导 0(例如,对于换行符 0A,而不仅仅是 A ):

cout << setfill('0') << setw(2) << hex << B[i]+0 << " " << endl;

关于c++ - 如何以十六进制而不是 ASCII 符号显示实际值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17031605/

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