gpt4 book ai didi

c - sscanf 行为/返回值

转载 作者:太空狗 更新时间:2023-10-29 17:00:57 24 4
gpt4 key购买 nike

我是一名学习 C 的新手,正在尝试从在线讲座中理解以下代码。它扫描字符串中的整数;如果遇到字符,则 sscanf 失败。

int n; char c;
if (sscanf(string, " %d %c", &n, &c) == 1)
//return the integer

else
// fail

我已经阅读了 sscanf 的手册页,但仍然对检查返回值以及此代码为何有效感到困惑。他们声明“这些函数返回分配的输入项的数量”。

如果 sscanf 只遇到字符,它会将它们写入 &c...但在那种情况下 &n 不会被写入。这样的话,我还以为sscanf的返回值还是1呢?

最佳答案

如果 sscanf 已成功读取 %d 而没有其他任何内容,它将返回 1(已分配一个参数)。如果数字前有字符,它将返回 0(没有分配参数,因为它需要先找到一个不存在的整数)。如果有一个带有附加字符的整数,它将返回 2,因为它能够分配两个参数。

关于c - sscanf 行为/返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16779633/

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