📅  最后修改于: 2023-12-03 15:24:07.529000             🧑  作者: Mango
在 C 语言中,我们可以使用文件 I/O 来将数据从文件读取到程序中,或者将程序中的数据写入到文件中。本文将介绍如何从一个 bin 文件中写入数据到一个 2D 数组中。
首先,我们需要创建一个二维数组,以便在之后将从文件中读取的数据写入到数组里。假设我们要从文件中读取一个 3x3 的二维数组,代码如下:
int arr[3][3];
为了从文件中读取数据,我们需要打开该文件。在 C 语言中,可以使用 fopen()
函数来打开文件。对于二进制文件,我们需要以二进制模式打开该文件,代码如下:
FILE *fp;
fp = fopen("file.bin", "rb");
if (fp == NULL) {
printf("Unable to open file\n");
exit(1);
}
在上述代码中,我们打开名为 "file.bin" 的二进制文件,使用了 "rb" 模式(以二进制模式打开文件)。如果打开失败,则输出错误信息并结束程序。
我们已经打开了文件,现在需要从文件中读取数据。在 C 语言中,可以使用 fread()
函数来从文件中读取数据。该函数有四个参数:
void *ptr
:要读取到的数据要存放的位置(指针)size_t size
:每个数据项的字节数size_t count
:要读取的数据项的数量FILE *stream
:要读取数据的文件指针对于二维数组,我们可以将数组的首地址传递给 ptr
参数,将每个数据项的字节数设为二维数组中每个元素的字节数,将要读取的数据项数量设为二维数组的大小(即 3 * 3
),最后使用上述打开文件时返回的文件指针作为 stream
参数。代码如下:
fread(arr, sizeof(arr), 1, fp);
在上述代码中,我们将从文件中读取 sizeof(arr)
个字节(即整个二维数组)并将其存储到指定的地址。
我们已经从文件中读取了数据并将其存储到了 2D 数组中,现在可以关闭文件了。在 C 语言中,可以使用 fclose()
函数来关闭文件,代码如下:
fclose(fp);
#include <stdio.h>
#include <stdlib.h>
int main() {
int arr[3][3];
FILE *fp;
fp = fopen("file.bin", "rb");
if (fp == NULL) {
printf("Unable to open file\n");
exit(1);
}
fread(arr, sizeof(arr), 1, fp);
fclose(fp);
return 0;
}
通过以上步骤,我们可以从二进制文件中读取数据并将其存储到 2D 数组中。在实际应用中,我们可以将读取到的数据用于其他用途。需要注意的是,我们读取的数据大小必须与数组的大小一致,否则可能会导致程序出现错误。