在c语言中如何把txt文件转换成2D 矩阵
时间: 2024-09-21 12:09:30 浏览: 33
测绘常用程序C语言.doc
在 C 语言中,将文本文件转换为二维矩阵通常需要分几个步骤:读取文件内容、解析每行并分割数据、将数据分配给矩阵的相应位置。以下是一个基本的例子,假设文件中的数据是以逗号分隔的整数对,构成矩阵的行:
```c
#include <stdio.h>
#include <stdlib.h>
#define ROWS 3
#define COLS 3
typedef struct {
int data[ROWS][COLS];
} Matrix;
void load_matrix_from_file(char *filename, Matrix *matrix) {
FILE *file = fopen(filename, "r");
if (file == NULL) {
printf("Failed to open file.\n");
return;
}
char line[100]; // 假设一行最多包含100个字符
for (int i = 0; i < ROWS; i++) {
fgets(line, sizeof(line), file);
line[strcspn(line, "\n")] = '\0'; // 移除换行符
char* values[COLS + 1]; // 分割后的值,加1是为了存放空字符
sscanf(line, "%d", &values[0]);
for (int j = 1; j < COLS; j++) {
sscanf(&values[j - 1], "%d", &values[j]); // 连续读取,直到遇到空格
}
matrix->data[i] = {values}; // 将整数数组赋给矩阵元素
}
fclose(file);
}
int main() {
Matrix matrix;
load_matrix_from_file("example.txt", &matrix);
// 打印矩阵的内容
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", matrix.data[i][j]);
}
printf("\n");
}
return 0;
}
```
这个示例中,`load_matrix_from_file` 函数负责读取和处理文件内容,`main`函数则展示如何使用加载的矩阵。记得替换 `example.txt` 为实际文件名,并确保文件格式正确。
阅读全文