在二进制文件 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()
打开的文件。
尽管我有几个问题:
- 在二进制文件中,可以在同一行写 2 个数字吗?
- 如果是这样,这个命令可以解决问题吗?我一直在四处寻找答案,但找不到可以证实这一点的东西。对于数组等没问题,但对于矩阵...?
二进制文件没有"lines"的概念——这完全取决于你的程序。
目前您向文件写入 numPairs*2
double
s,一次写入两个。您同样可以将每个 double
单独存储,或者将它们全部存储在一个数组中,然后通过调用 fwrite
.
将它们全部写入
同样,阅读程序可以自由地单独阅读,或一次阅读两个,或一次全部阅读。
我认为你的意思是文本文件,因为二进制文件没有列或行只有 1 和 0,这只能由计算机读取
我正在使用著名的命令 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()
打开的文件。
尽管我有几个问题:
- 在二进制文件中,可以在同一行写 2 个数字吗?
- 如果是这样,这个命令可以解决问题吗?我一直在四处寻找答案,但找不到可以证实这一点的东西。对于数组等没问题,但对于矩阵...?
二进制文件没有"lines"的概念——这完全取决于你的程序。
目前您向文件写入 numPairs*2
double
s,一次写入两个。您同样可以将每个 double
单独存储,或者将它们全部存储在一个数组中,然后通过调用 fwrite
.
同样,阅读程序可以自由地单独阅读,或一次阅读两个,或一次全部阅读。
我认为你的意思是文本文件,因为二进制文件没有列或行只有 1 和 0,这只能由计算机读取