#include <cstdio>
int main()
{
int i;
printf("%d", scanf("%d", &i));
}
任何数字I输入输出奇怪,我得到的输出:使用scanf函数
1
为什么会这样呢?
#include <cstdio>
int main()
{
int i;
printf("%d", scanf("%d", &i));
}
任何数字I输入输出奇怪,我得到的输出:使用scanf函数
1
为什么会这样呢?
你输出的scanf的结果,这是不是你输入号码,但被成功读取的项目数量。您输入的号码存储在i中。为了输出它,你会写一个额外的行:
#include <cstdio>
int main()
{
int i;
if (scanf("%d",&i) == 1)
printf("%d", i);
}
S.O.中太多未验证的输入。问题,也不希望它在答案中! - * *更好* if(scanf(“%d”,&i)== 1)printf(“%d \ n”,i);' – 2011-04-22 09:38:39
根据您的建议进行编辑。 – Tommy 2011-04-22 11:55:22
那么,我最好给你+1然后;-)。干杯。 – 2011-04-22 15:10:47
scanf()
返回读取的项目数,当它成功。这里它的读数只有一个数字,因此每次输出都是1,不管数字是多少。
''是一个C标准头。 –
Puppy
2011-04-22 10:37:08
@ DeadMG-你很荒谬。 'C标准库中的每个头文件都以不同的名称包含在C++标准库中,通过删除.h并在开始处添加'c'来生成。问题是C和C++都是特定的。 – Sadique 2011-04-22 11:41:03