c++ - 使用 write 方法格式化写入 C++ 流的数据

标签 c++ iostream

我正在尝试将指针的内容写入十六进制流。我试过将流设置为使用十六进制格式标志,但在使用 write 方法时似乎没有效果。以下是我当前的代码:

char* pointerToData;
size_t dataLength;
....
out.setf(std::ios::hex, std::ios::basefield);
out.setf(std::ios::showbase);
out.write(pointerToData, dataLength);
os.unsetf(std::ios::showbase);

最佳答案

hex 标志影响整数值的格式化方式。当您使用缓冲区调用 write 时,它不会格式化任何内容。你需要大致像这样的东西:

for (size_t ii = 0; ii < dataLength; ++ii) {
    out << int(pointerToData[ii]);
}

关于c++ - 使用 write 方法格式化写入 C++ 流的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22964420/

相关文章:

c++ - 静态非本地返回指针的返回值为何始终为零?

c++ - 在 QQuickItem 中绘制多个不同颜色的点

c++ - 为什么从 std::istream 读取记录结构字段失败,我该如何解决?

java - 多个线程与管道流通信并使用 PushbackInputStream

c++ - 文件 I/O C++ ifstream 语法

c++ - Windows/C++ : how to use a COM dll which is not registered

c++ - obj 文件中纹理坐标的含义是什么

c++ - 选择Origin的起点?

windows - 终端中的 Ctrl+Z 行为

c++ - 自定义流缓冲区能否在程序退出时和请求输入时自动刷新?