C语言中读取文件中的二维数组
时间: 2023-09-21 21:08:19 浏览: 55
读取文件中的二维数组可以通过以下步骤实现:
1. 打开文件:使用fopen()函数打开要读取的文件。
2. 读取文件:使用fscanf()函数逐行读取文件中的数据,并将数据存储到二维数组中。
3. 关闭文件:使用fclose()函数关闭文件,释放资源。
下面是一个简单的示例代码,它可以读取一个包含5行3列的整数二维数组:
```c
#include <stdio.h>
#define ROWS 5
#define COLS 3
int main() {
int arr[ROWS][COLS];
FILE *file = fopen("data.txt", "r");
if (file == NULL) {
printf("Failed to open file.\n");
return 1;
}
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
fscanf(file, "%d", &arr[i][j]);
}
}
fclose(file);
return 0;
}
```
注意:在读取文件时,需要确保文件中的数据与数组的大小匹配,否则可能会导致读取错误。
相关问题
C语言从文件中读取二维数组
可以使用文件操作函数来读取二维数组。以下是一个示例代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main() {
FILE *fp;
int arr[ROWS][COLS];
int i, j;
// 打开文件
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("无法打开文件!");
return 1;
}
// 读取数组数据
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
fscanf(fp, "%d", &arr[i][j]);
}
}
// 关闭文件
fclose(fp);
// 输出数组数据
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
在上述示例代码中,我们首先定义了一个 `ROWS` 行、`COLS` 列的二维数组 `arr`。然后,我们使用文件操作函数 `fopen()` 打开名为 `data.txt` 的文件,使用 `fscanf()` 函数逐个读取文件中的整数,并将它们存储到数组 `arr` 中。最后,我们使用 `fclose()` 函数关闭文件,输出数组 `arr` 中的数据。
请确保文件中的数据格式与程序中 `fscanf()` 函数的参数一致,否则可能会导致读取错误。
c语言从文件中读取二维数组
可以使用标准库函数fscanf()来从文件中读取二维数组。假设文件中的二维数组大小为M行N列,文件名为input.txt,可以按照以下步骤实现:
1. 打开文件并检查是否成功打开。
```c
FILE *fp;
fp = fopen("input.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
exit(1);
}
```
2. 读取文件中的二维数组。
```c
int array[M][N];
int i, j;
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
fscanf(fp, "%d", &array[i][j]);
}
}
```
3. 关闭文件。
```c
fclose(fp);
```
完整的代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define M 2
#define N 3
int main() {
FILE *fp;
fp = fopen("input.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
exit(1);
}
int array[M][N];
int i, j;
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
fscanf(fp, "%d", &array[i][j]);
}
}
fclose(fp);
// 打印读取的数组
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
printf("%d ", array[i][j]);
}
printf("\n");
}
return 0;
}
```
假设input.txt文件内容如下:
```
1 2 3
4 5 6
```
程序的输出结果为:
```
1 2 3
4 5 6
```