c语言如何把txt里的数据放到矩阵里
时间: 2024-10-06 20:05:15 浏览: 13
在C语言中,将文本文件中的数据读取到二维数组(矩阵)中,通常需要经历以下几个步骤:
1. 打开并读取文件:使用`fopen()`函数打开文件,然后用`fgets()`或`getline()`逐行读取内容。
2. 分割数据:每行数据通常包含若干个用特定分隔符(如空格、制表符或逗号)分隔的值。可以使用`strtok()`或`sscanf()`等函数将每一行分割成单个元素。
3. 初始化矩阵:先确定矩阵的大小(比如行数m和列数n),然后创建一个足够大的二维数组`matrix[m][n]`。
4. 存储数据:遍历读取的内容,将每个数值转换为整型或其他合适的类型,并存储到矩阵对应的位置上。
5. 关闭文件:读取完成后,记得用`fclose()`关闭文件。
下面是一个简单的示例代码片段:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_ROWS 10
#define MAX_COLS 10
void read_data_to_matrix(char filename[], int matrix[MAX_ROWS][MAX_COLS]) {
FILE *file = fopen(filename, "r");
if (file == NULL) {
perror("Error opening file");
return;
}
char line[100];
int row = 0;
while (fgets(line, sizeof(line), file)) {
char *token = strtok(line, " ");
int col = 0;
while (token != NULL) {
// 将字符串转为整型并存入矩阵
matrix[row][col++] = atoi(token);
token = strtok(NULL, " ");
}
row++;
}
fclose(file);
}
int main() {
int data[MAX_ROWS][MAX_COLS];
read_data_to_matrix("data.txt", data);
// 现在数据已存储在data矩阵中
// 可以打印矩阵查看数据
for (int i = 0; i < MAX_ROWS; i++) {
for (int j = 0; j < MAX_COLS; j++) {
printf("%d ", data[i][j]);
}
printf("\n");
}
return 0;
}
```