gpt4 book ai didi

C++ 读取长的非分隔整数,将它们分开并放入二维数组中

转载 作者:行者123 更新时间:2023-11-30 19:20:41 25 4
gpt4 key购买 nike

我有一个 numbers.txt,其中 m 行包含 n 位整数:

185793290584395734589340920932
432904895929583224024902234023

我尝试过使用fscanf(),但在定义格式时遇到问题(更多信息 here )。

    FILE *fid;
fid = fopen("numbers.txt", "r");
int numbers[m][n];
for (int i = 0; i < m; i++){
for (int j = 0; j < n; j++){
int num;
fscanf(fid,format,&num);
numbers[i][j] = num;
}
}

用户过去提出的类似问题似乎涉及分隔数据,而我的则不是。

我希望能够获得以下形式的二维数组:数字=

1 8 5 7 9 3 2 9 0 5 8 4 3 9 5 7 3 4 5 8 9 3 4 0 9 2 0 9 3 2
4 3 2 9 0 4 8 9 5 9 2 9 5 8 3 2 2 4 0 2 4 9 0 2 2 3 4 0 2 3

最佳答案

使用fgetc

FILE *fid = fopen("numbers.txt", "r");
int numbers[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
numbers[i][j] = fgetc(fid) - '0';
}
fgetc(fid); // throw away new line
}

或使用fscanf

FILE *fid = fopen("numbers.txt", "r");
int numbers[m][n];
for (int i = 0; i < m; i++) {
char c[n + 1]; //an extra char for '\0'
fscanf(fid, "%s", c);
for (int j = 0; j < n; j++) {
numbers[i][j] = c[j] - '0';
}
}

关于C++ 读取长的非分隔整数,将它们分开并放入二维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21670116/

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