如何在c中扫描每行不同的行

  • 本文关键字:扫描 c file malloc scanf
  • 更新时间 :
  • 英文 :


假设我有这个文本文件:

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;
}

相关内容

  • 没有找到相关文章

最新更新