在c ++文件流中将十六进制字符串写入二进制文件

时间:2012-06-13 19:02:04

标签: debugging hex filestream binaryfiles

如果我想使用c ++将数字(例如,它是十六进制格式)写入二进制文件,例如,

#include <fstream>
#include <iostream>

using namespace std;

int main()
{
    int num = 0xabcd;
    ofstream outfile("tmp.bin", ios::out | ios::binary);
    outfile.seekp(0x8000, ios_base::beg);
    outfile.write(num, sizeof(num));
    return 0;
}

此程序无法运行,因为ostream& write()仅将char* chars[]作为其第一个参数,而我需要将int类型编号num写入二进制文件&#34 ; tmp.bin&#34 ;.

期望的结果是当我查看&#34; tmp.bin&#34;在十六进制模式下,我可以在地址ab cd看到0x8000。我想知道这是否可行,有人可以帮我吗?非常感谢你。

1 个答案:

答案 0 :(得分:1)

您可以将int转换为char*

outfile.write((char*)&num, sizeof(num));