我试图用十六进制编写指向流的指针的内容。我已经尝试将流设置为使用十六进制格式标志,但在使用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);
答案 0 :(得分:1)
hex
标志会影响整数值的格式化方式。当您使用缓冲区调用write
时,它不会格式化任何内容。你需要这样的东西:
for (size_t ii = 0; ii < dataLength; ++ii) {
out << int(pointerToData[ii]);
}