在将大块数据写入文件时,我一点也不擅长。我有一个模拟,它有这样的结构
typedef struct
{
int age;
float height;
float weight;
int friends [ 250000 ];
} Person;
而我可以拥有多达25万人,每个人有25万朋友(一个集团)。显然,这是大量的数据。如果我想保存每个结构以便以后加载它们,C 中最有效的方法是什么?这是我到目前为止所考虑的
- 我不想用 250,000 组数据创建一个巨大的字符串,然后再做一个
write
,因为这会占用大量内存 - 我也不想创建 250,000 个不同的文件,因为这样做可能会很慢。
- 根据索引附加文件(即第 1 个人,然后第 2 个人...),但这也可能很慢。
- 将数据保存为二进制(这样更有效吗?)
编辑我正在寻找有效的使用方法fwrite ()
,即收集所有数据并写入单个文件是否更快,或者是否创建多个文件并避免事先收集所有数据的开销。