我试图将 uint32_t 数据写入 .bin 文件。我首先打开一个文件流,我声明它是一个二进制文件流。
`hartInStream.open (hartFileToWrite.c_str(), std::ifstream::binary);
if(!hartOutStream.is_open())
{
printf("Something in outstream went wrong.\n");
}
else
{
printf("Yippy! it outstream worked!\n");
printf("---------Starting to read-------------\n");}`
接下来,我将尝试写入的数据(在本例中为 uint32_t“数据”)打印出来,并将其写入文件流的末尾。
printf(" Reading %lu from HART at %d-%d-%d\n", data, (int)addr1, (int)addr2, (int)addr3 );
最后我追加数据
hartOutStream<<data;
我知道我应该写 0x00 0x00 0x01 0x00 (256) 作为前 4 个字节,但我写的是 32 35 36,这是 ascii 宪章到 256 的十六进制等效值。(使用 HxD 文件查看器)
我怀疑问题出在 << 运算符中,它将其类型转换为 ascii。我已经尝试过类型转换, atoi() 函数,但似乎没有任何效果。有谁知道这有什么问题?
谢谢