c++ - 将十六进制数写入文件

标签 c++

如何将十六进制数的字符串表示形式写入文件?例如,如果我有一个十六进制值 0x001A(十进制为 26),我希望将它作为十六进制字符串 0x001A 写入文件而不是作为十进制字符串 26 或原始字节流。

最佳答案

您可以使用 std::hex 修饰符强制将数字写入十六进制:

std::cout << std::hex << 10 << std::endl;

这会输出“a”。您可以添加“0x”以完成表示。您还可以通过在 std::hex 之后添加 std::uppercase 将它们转换为大写,以大写字母输出十六进制数,也是 std::setfill('0') 用“0”填充左边的尺寸,std::setw(X) 设置所需的宽度。

例如,3 个十六进制数字、大写字母和“0”填充:

std::cout << "0x" << std:hex << std::uppercase << std::setw(3) << std::setfill('0') << 10 << std::endl;

将准确打印"0x00A"

关于c++ - 将十六进制数写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6820311/

相关文章:

c++ - C++检测输入是否不满足条件

c++ - 用qt从postgres读写图像(大对象)

c++ - 在定义中使用 typedef 类型

c++ - 使用正则表达式获取大括号 block 的列表

c++ - 节点和链表的问题

c++ - 将 unique_ptr 的 unordered_map move 到另一个

c++ - 用 vector 快速排序奇怪的错误

c++ - 常见的 C 模式,但用 C++ 表示?

c++ - 在 Qt 中将变量从选项卡传递到 QTabWidget 中的选项卡

c++ - 错误 : AddressSanitizer: heap-buffer-overflow on address X at pc Y bp Z sp W