gpt4 book ai didi

c - C中逐行读取并存储到数组

转载 作者:行者123 更新时间:2023-11-30 21:07:28 25 4
gpt4 key购买 nike

enter image description here

我正在尝试读取包含上述格式输入的文本文件。我能够使用以下代码读取每一行:

FILE *file = fopen(argv[1], "r");
...

char * line = NULL;
size_t len = 0;
ssize_t read;
while ((read = getline(&line, &len, file)) != -1)

这样“行”等于文件中的每一行,如果我输出 ex 读取的内容:我得到的第一个输出为“1 2 3 4 5 6 7 8 9”。我如何将这些数字存储到二维数组中?我怎样才能在每个空格处分割并仅获取数字?

最佳答案

使用sscanf的示例

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[]) {
int numbers[9][9];
FILE *file = fopen(argv[1], "r");
char * line = NULL;
size_t len = 0;
ssize_t read;
int rows = 0;
while ((read = getline(&line, &len, file)) != -1){
int *a = numbers[rows];
if(9 != sscanf(line, "%d%d%d%d%d%d%d%d%d", a, a+1, a+2,a+3,a+4,a+5,a+6,a+7,a+8)){
fprintf(stderr, "%s invalid format at input file\n", line);
return EXIT_FAILURE;
}
if(++rows == 9)
break;
}
fclose(file);
free(line);
//check print
for(int r = 0; r < 9; ++r){
for(int c = 0; c < 9; ++c)
printf("%d ", numbers[r][c]);
puts("");
}
}

关于c - C中逐行读取并存储到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43578949/

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