如何以2D数组形式读取/写入二进制文件?

时间:2019-05-30 19:14:13

标签: c arrays file binaryfiles fread

我正在尝试使用二进制文件将数据保存在其中。但是我不明白如何以2D数组形式进行读写。我知道如何从二进制文件读取数组/结构等,我只是不知道如何使用2D数组来做到这一点。

我已经看过与此类似的问题,但是我不了解大多数人的看法。我只想知道一个人如何以2D阵列格式读取/写入数据。如fwrite(x,y,z,w);

这是我的数组的样子:

int array[50][100];

我不知道从现在开始该怎么做,如果是一维的话;

FILE* fp;
fp = fopen("file.bin","wb+");
fwrite(array, sizeof(int), 50, fp);

但是由于该数组是多维的,所以我实际上不知道要在该函数中放置什么。

谢谢。

请注意,我在编码方面还很陌生,可能看不到非常简单的解决方案。

1 个答案:

答案 0 :(得分:0)

保存二维数组的方法与保存一维数组非常相似,的确如您在问题注释中所写:

fwrite(array, sizeof(int), 50*100, fp);

这是因为二维数组(在这种情况下为int)的存储方式与一维数组的存储方式相同;不间断的int链。但是,只要与保存/加载保持一致,就可以用任何方式保存它。 fwrite指针作为参数,因此只要您传递给它的数据是数组就可以使用。