使用scanf时输出奇怪
Strange output on using scanf
#include <cstdio>
int main()
{
int i;
printf("%d", scanf("%d", &i));
}
无论我输入的是什么数字,我都会得到输出:
1
为什么会这样?
如果成功,则scanf函数
返回成功读取的条目数。
如果匹配失败,该计数可以匹配预期的读数数或更少,甚至为零。如果在成功读取任何数据之前出现输入失败,则返回EOF。
试试这个:
printf("%d",scanf("%d%d",&i,&i));
您将输出scanf的结果,该结果不是您输入的数字,而是成功读取的项数。输入的数字存储在i中。要输出它,必须再写一行:
#include <cstdio>
int main()
{
int i;
if (scanf("%d",&i) == 1)
printf("%d", i);
}
scanf()
返回成功读取的项数。这里它只读取一个数字,因此每次输出都是1,无论数字是多少。
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 为什么这个scanf()的两个不同的输入会给出两个不同的输出?
- scanf() 为最后一行输入提供错误的输出
- 对于scanf(),为什么否定的扫描集"%[^n]"显示"n"的正确输出,而不是"aegis"的扫描集"%[aeiou]"?
- 使用scanf时输出奇怪