我有一个设备,会向我发送 uint32_t 类型的二进制数据。我想将这些数据保存到一个二进制文件中。以下是我的代码:
#include<iostream>
#include<fstream>
#include <cstdlib>
using namespace std;
int main()
{
ofstream myFile ("data2.bin", ios::out | ios::binary);
bool buffer[32];
for (int k = 0; k<100; k++)
{
for (int i = 0; i<32;i++)
{
buffer[i] = (bool)rand()%2;
}
myFile.write ((char*)&buffer, 32);
}
myFile.close();
}
虽然程序能够运行,但是文件大小为3.2 KB,而不是0.4 KB。此外,当我试图读取从设备生成的数据文件时,输出结果与手册描述的格式不同,产生了一些奇怪的结果。显然,数据量比我预期的要多。
我做错了什么?
RAND_MAX
,然后直接写入rand()
的结果来节省时间,这样做大约100次吗? - Mooing Duck