【发布时间】:2016-02-22 16:50:56
【问题描述】:
char c;
printf("%d", scanf("%s", &c)); // prints 1
printf("%d", scanf("%c", &c)); // prints 1
我不明白为什么这两个语句都打印相同的值1?
据我所知,scanf() 返回成功匹配和分配的输入项的数量,或者在早期匹配失败的情况下返回零。那么这不是不匹配的情况吗?
我在这里错过了什么?
【问题讨论】:
-
@SedatKapanoglu,我认为不完全是。当说明符不正确时,更多的是关于
scanf的行为。 -
@SedatKapanoglu 我在这里发帖之前已经阅读过它,但无法得到我的答案
-
这绝对不是提议的问题的重复。在提出的问题中,确实询问了这两个项目之间的差异。在这个问题中,发帖人非常错误地假设格式与
scanf()的返回值有关。 -
重复是关于在
printf()中使用"%s"和"%c",而不是这里使用的scanf()。投票重新开放,因为 post 虽然相关,但不适用。 -
这是无效代码。