gpt4 book ai didi

使用 fscanf() 将整数复制到数组中。在 C

转载 作者:太空狗 更新时间:2023-10-29 15:55:30 26 4
gpt4 key购买 nike

我有一个包含几行 10 个整数的文件。

我想将这些整数复制到几个数组中,命名为 line1、line2、line3 等,其中每一行的数字都在相应的数组中。

我正在使用

fscanf(items, "%d, %d, %d, %d, %d, %d, %d, %d, %d, %d", &line1[0], &line1[1], &line1[2], &line1[3], &line1[4], &line1[5], &line1[6], &line1[7], &line1[8], &line1[9]);

将前 10 个整数分配给名为 line1 的数组。

这是一种非常草率的方法,它没有解决将其余值分配给其他数组的其他问题。

任何有关如何更整齐地将 10 个值分配给数组以及如何将每一行分配给不同数组的建议都将不胜感激!

谢谢

最佳答案

使用多维数组和嵌套循环:

#DEFINE COLS 10
#DEFINE ROWS 10

int i, j;
int line[ROWS][COLS];

for (i = 0; i < ROWS; ++i) {
for (j = 0; i < COLS - 1; ++j) {
fscanf(items, "%d, ", &line[i][j]);
}
fscanf(items, "%d", &line[i][COLS - 1]);
}

编辑:

上面的代码使用与问题相同的格式字符串(逗号分隔值)。如果空格分隔值没问题,您可以使用直接循环,而无需为每一行的最后一项单独使用 fscanf:

#DEFINE COLS 10
#DEFINE ROWS 10

int i, j;
int line[ROWS][COLS];

for (i = 0; i < ROWS; ++i) {
for (j = 0; i < COLS; ++j) {
fscanf(items, "%d", &line[i][j]);
}
}

边注:

如果您想编写代码来检测输入文件中的错误,您需要检查 fscanf 的返回值。在学校项目中可能不需要,但在工业强度代码中需要。

关于使用 fscanf() 将整数复制到数组中。在 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13273746/

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