我是一名学习 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
因为它能够分配这两个参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)