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

时间:2014-04-09 13:41:07

标签: 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);

1 个答案:

答案 0 :(得分:1)

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

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