如何将 from/write 读取为二维数组形式的二进制文件?
How do I read from/write to a binary file in 2D Array form?
我正在尝试使用二进制文件来保存我的数据。但我不明白如何以二维数组形式 read/write 。我知道如何从二进制文件中读取 arrays/structs 等,我只是不知道如何使用二维数组来做到这一点。
我看过类似的问题,但我不明白大多数人的意思。我只想知道一个 read/write 数据如何以二维数组格式显示。如 fwrite( x , y , z , w ); .
这是我的阵列的样子:
int array[50][100];
我不知道以后要做什么,如果是一维我会做;
FILE* fp;
fp = fopen("file.bin","wb+");
fwrite(array, sizeof(int), 50, fp);
但由于该数组是多维的,所以我实际上不知道该在该函数中放入什么。
提前致谢。
请注意,我是编码方面的新手,我可能看不到一个非常简单的解决方案。
保存二维数组的方法和保存一维数组的方法很相似,确实如你在问题评论中所写:
fwrite(array, sizeof(int), 50*100, fp);
这是因为二维(在本例中为 int
)数组的存储方式与一维数组的存储方式相同; int
的完整链。但是,只要您与 saving/loading 保持一致,您就可以以任何方式保存它。 fwrite
将 指针 作为参数,因此只要您传递给它的数据是一个数组,它就可以工作。
我正在尝试使用二进制文件来保存我的数据。但我不明白如何以二维数组形式 read/write 。我知道如何从二进制文件中读取 arrays/structs 等,我只是不知道如何使用二维数组来做到这一点。
我看过类似的问题,但我不明白大多数人的意思。我只想知道一个 read/write 数据如何以二维数组格式显示。如 fwrite( x , y , z , w ); .
这是我的阵列的样子:
int array[50][100];
我不知道以后要做什么,如果是一维我会做;
FILE* fp;
fp = fopen("file.bin","wb+");
fwrite(array, sizeof(int), 50, fp);
但由于该数组是多维的,所以我实际上不知道该在该函数中放入什么。
提前致谢。
请注意,我是编码方面的新手,我可能看不到一个非常简单的解决方案。
保存二维数组的方法和保存一维数组的方法很相似,确实如你在问题评论中所写:
fwrite(array, sizeof(int), 50*100, fp);
这是因为二维(在本例中为 int
)数组的存储方式与一维数组的存储方式相同; int
的完整链。但是,只要您与 saving/loading 保持一致,您就可以以任何方式保存它。 fwrite
将 指针 作为参数,因此只要您传递给它的数据是一个数组,它就可以工作。