#include <cstdio>
int main()
{
int i;
printf("%d", scanf("%d", &i));
}
无论我输入什么号码,我都会得到输出:
1
为什么会这样?
答案 0 :(得分:11)
成功时,scanf功能
返回成功读取的项目数。
如果发生匹配故障,此计数可以匹配预期的读数或更少,甚至为零。 如果在成功读取任何数据之前输入失败,则返回EOF。
试试这个:
printf("%d",scanf("%d%d",&i,&i));
答案 1 :(得分:4)
输出scanf的结果,该结果不是您输入的数字,而是成功读取的项目数。您输入的号码存储在i中。要输出它,你必须写一个额外的行:
#include <cstdio>
int main()
{
int i;
if (scanf("%d",&i) == 1)
printf("%d", i);
}
答案 2 :(得分:0)
scanf()
返回成功时读取的项目数。这里只读取一个数字,因此无论数字如何,每次输出都是1。