如果我想使用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
。我想知道这是否可行,有人可以帮我吗?非常感谢你。
答案 0 :(得分:1)
您可以将int
转换为char*
outfile.write((char*)&num, sizeof(num));