gpt4 book ai didi

c - 如何在c中扫描行,每行不同?

转载 作者:行者123 更新时间:2023-11-30 21:02:58 24 4
gpt4 key购买 nike

假设我有这个文本文件,例如:

4
1 2 3 4
3 9 8 7
1 1 2 1
8 7 8 6

我想将第一行(“4”)存储到一个变量,其他行,将它们按照显示方式插入二维矩阵(动态二维数组)。

请注意,这只是一个例子,我只知道第一行是一个字符,我不知道其余行的长度,除了 N*N 矩阵。

我怎样才能用C语言做到这一点?

编辑:所以矩阵应该只有数字,所以例如这个txt文件:
4
1 2 3 4
3 9 8 7
1 宽 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;
}

关于c - 如何在c中扫描行,每行不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27234279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com