使用C++怎么从txt文件中读取二维数组
发布时间:2023-05-14 21:45:47
从txt文件中读取二维数组通常有多种方法,但是在使用C语言时最常见的方法是使用文件流和循环读取文件的数据。以下是一个典型的步骤:
1. 定义一个二维数组并确定其大小。假设我们有一个10行20列的数组:
#define ROWS 10 #define COLS 20 int array[ROWS][COLS];
2. 打开txt文件并创建一个文件指针:
FILE *file_ptr;
file_ptr = fopen("filename.txt", "r");
注意:我们将文件指针定义为文件的返回值。该函数有两个参数。 个参数是我们要打开的文件名称,而第二个参数表示文件的打开模式。"r"表示只读模式。
3. 使用循环逐行读取文件的数据并存储到二维数组中:
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
fscanf(file_ptr, "%d ", &array[i][j]);
}
}
注意:我们使用了两个嵌套循环来读取文件的每一行,并使用fscanf函数将当前读取的整数存储到数组的相应位置。
4. 关闭文件:
fclose(file_ptr);
5. 处理文件读取可能遇到的错误。这里我们可以使用ferror函数检查文件是否存在问题:
if (ferror(file_ptr)) {
printf("Error while reading from file.
");
}
完整的代码如下:
#include <stdio.h>
#include <stdlib.h>
#define ROWS 10
#define COLS 20
int main() {
int array[ROWS][COLS];
FILE *file_ptr;
int i, j;
file_ptr = fopen("filename.txt", "r");
if (file_ptr == NULL) {
printf("Error opening file.
");
exit(1);
}
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
fscanf(file_ptr, "%d ", &array[i][j]);
}
}
if (ferror(file_ptr)) {
printf("Error while reading from file.
");
}
fclose(file_ptr);
return 0;
}
以上就是使用C语言从txt文件中读取二维数组的方法,标准库中还有其他函数可以实现相同的操作,但在大多数情况下,使用fscanf函数是最常见的方法。
