gpt4 book ai didi

c - 在 fscanf 中添加多个参数

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

我尝试通过 fscanf 存储多个参数,尽管它适用于

while(fscanf(fptr, "%s %*s %*s %*s", mod) == 1){
}

它不适用于以下情况

while(fscanf(fptr, "%s %s %*s %*s", mod, mod2) == 1){
}

我做错了什么吗?

最佳答案

fscanf() 返回成功存储的转换数。

因此,您应该将第二个 fscanf() 的结果与 2 进行比较:

    while (fscanf(fptr, "%s %s %*s %*s", mod, mod2) == 2) {
...
}

但请注意,空格是多余的,并且 %*s 转换说明符跳过的单词可能只是在文件末尾不存在,而不会导致不同的返回值。

另请注意,您应该告诉 fscanf 存储到目标数组 modmod2 中的最大字节数,以避免未定义的行为输入文件中的单词意外地大:

    char mod[32], mod2[32];
while (fscanf(fptr, "%31s %31s %*s %*s", mod, mod2) == 2) {
...
}

关于c - 在 fscanf 中添加多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60252877/

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