gpt4 book ai didi

arrays - fscanf 一个数字并将每个数字存储在数组中

转载 作者:行者123 更新时间:2023-11-30 16:02:03 29 4
gpt4 key购买 nike

我有一个数字类似于“100000”的文件。有没有办法将每个数字存储在数组中?例如,我创建一个 array[100],我想要 array[0] = 1array[1] = 0array[2] = 0 等。我已经查过了,但从我收集的信息来看,如果我使用 char 数组,它将把它作为一个整体。

最佳答案

我可能不会为此使用fscanf():

while ((c = fgetc(fp)) != EOF && isdigit(c))
array[i++] = c - '0';

如果您必须使用fscanf(),则:

int i = 0;
int v;
while (fscanf(fp, "%1d", &v) == 1)
{
assert(v >= 0 && v <= 9);
array[i++] = v;
}

格式字符串中的 1 将整数限制为一位数字。如果使用 %1d,则必须传入 int *。如果您的库支持 C99,您可以使用:

int i = 0;
while (fscanf(fp, "%1hhd", &array[i++]) == 1)
;

hh 长度修饰符指示该指针是指向 char(非常短的整数)的指针,而不是指向 int 的指针。

关于arrays - fscanf 一个数字并将每个数字存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5780673/

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