c++ 将长度为100的buf数据以0x00,0x11…16进制格式写入文本文件的c++源码
时间: 2024-12-21 10:31:35 浏览: 11
在C++中,你可以使用`std::hex`和`std::setw`来以16进制格式写入文本文件。下面是一个简单的例子,假设`buf`是一个包含字节的数组,长度为100:
```cpp
#include <fstream>
#include <iomanip>
void write_hex_to_file(const char* buf, size_t length, const std::string& filename) {
std::ofstream file(filename, std::ios::binary);
if (!file.is_open()) {
std::cerr << "Failed to open file: " << filename << '\n';
return;
}
for (size_t i = 0; i < length; ++i) {
// 将单个字节转为两位的十六进制字符串
std::string hex = std::hex << std::setfill('0') << std::setw(2) << static_cast<unsigned char>(buf[i]);
file << hex << ' '; // 写入并加空格分隔
}
file << '\n'; // 文件结束符
file.close();
}
// 示例
const char buf[] = {0x00, 0x11, ...}; // 长度为100的字节数据
write_hex_to_file(buf, sizeof(buf), "output.txt");
阅读全文