在二进制文件 C 上写入矩阵

Writing matrix on binary file C

我正在使用著名的命令 fwrite/fread 在 C 中处理一些二进制文件。 我必须写成对的数字,每行一对,如下所示:

double values[2];
for (int i=0 ; i<numPairs ; i++){
    values[0]=rand();
    values[1]=rand();
    fwrite(&values, sizeof(double), 2, myFile);
}

其中 myFile 是(顾名思义)我使用 fopen() 打开的文件。

尽管我有几个问题:

  1. 在二进制文件中,可以在同一行写 2 个数字吗?
  2. 如果是这样,这个命令可以解决问题吗?我一直在四处寻找答案,但找不到可以证实这一点的东西。对于数组等没问题,但对于矩阵...?

二进制文件没有"lines"的概念——这完全取决于你的程序。

目前您向文件写入 numPairs*2 doubles,一次写入两个。您同样可以将每个 double 单独存储,或者将它们全部存储在一个数组中,然后通过调用 fwrite.

将它们全部写入

同样,阅读程序可以自由地单独阅读,或一次阅读两个,或一次全部阅读。

我认为你的意思是文本文件,因为二进制文件没有列或行只有 1 和 0,这只能由计算机读取