我正在尝试将指针的内容写入十六进制流。我试过将流设置为使用十六进制格式标志,但在使用 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/