C++ 将十六进制数写入文件
如何将十六进制数的字符串表示形式写入文件?例如,如果我有一个十六进制值C++ 将十六进制数写入文件,c++,C++,如何将十六进制数的字符串表示形式写入文件?例如,如果我有一个十六进制值0x001A(它是十进制的26),我希望它作为十六进制字符串0x001A写入文件,而不是作为十进制字符串26或原始字节流写入文件。可以使用std::hex修饰符强制十六进制写入数字: std::cout << std::hex << 10 << std::endl; 将精确打印“0x00A”您可以使用std::hex修饰符强制十六进制写入数字: std::cout << std
0x001A
(它是十进制的26
),我希望它作为十六进制字符串0x001A
写入文件,而不是作为十进制字符串26
或原始字节流写入文件。可以使用std::hex
修饰符强制十六进制写入数字:
std::cout << std::hex << 10 << std::endl;
将精确打印“0x00A”您可以使用
std::hex
修饰符强制十六进制写入数字:
std::cout << std::hex << 10 << std::endl;
将准确打印
“0x00A”
您如何查看该文件?我很确定,它“存储”为十六进制值,但只是选择将其显示为十进制。你试着用另一个C++例程读取它,然后做逻辑比较吗?你如何看待文件?我很确定,它“存储”为十六进制值,但只是选择将其显示为十进制。你是否尝试用另一个C++例程读取它,然后做逻辑比较?注意,当状态在输出之后不清楚时,你需要关闭“十六进制模式”;使用std::dec
切换回十进制表示法。但是,std::setfill
和std::width
在一次输出后会自动清除,因此每次输出每个数字之前都需要使用它们。制作一个临时的std::stringstream
,设置其上的标志,然后将流的.str()
发送到std::cout
,这通常很有用,因此,cout
的状态不会被修改。请注意,您需要关闭“十六进制模式”,因为单次输出后状态不清晰;使用std::dec
切换回十进制表示法。但是,std::setfill
和std::width
在一次输出后会自动清除,因此每次输出每个数字之前都需要使用它们。制作一个临时的std::stringstream
,设置其上的标志,然后将流的.str()
发送到std::cout
,这通常很有用,这样就不会修改cout
的状态。