假设我有这个文本文件:
4
1 2 3 4
3 9 8 7
1 1 2 1
8 7 8 6
我想将第一行(" 4
")存储到一个变量中,而其他行,将它们插入 2D 矩阵,因为它们显示的方式(动态 2D 数组)。
请注意,它只是示例,我只知道第一行是一个字符,除了 N*N 矩阵之外,我不知道其余行的 len
。如何在 C 中执行此操作?
编辑:所以矩阵应该只有数字,所以 sor 示例这个 txt 文件:
4
1 2 3 4
3 9 8 7
1 W 2 1
8 7 8 6
是非法的。 我该如何处理?
#include <stdio.h>
#include <stdlib.h>
int main(void){
FILE *fp = fopen("data.txt", "r");
int n;
fscanf(fp, "%d", &n);
int (*mat)[n] = malloc(sizeof(int[n][n]));
int *p = &mat[0][0];
while(p < &mat[n-1][n])
fscanf(fp, "%d", p++);
fclose(fp);
//check
for(int r=0; r < n; ++r){
for(int c=0; c < n; ++c)
printf("%d ", mat[r][c]);
printf("n");
}
free(mat);
return 0;
}