scanf函数的返回值是什么?
scanf函数的返回值与正确输入数据的个数有关,当输入有错误时,错误输入之前正确输入数据的个数即为scanf的返回值。简而言之,scanf返回值等于读取到正确数据的个数。
初学者可能会问:scanf函数竟然有返回值,什么是返回值?别急,我们先用一个简单的例子体会一下:
判断多个数的奇偶性
注:odd表示奇数,even表示偶数。
可以看到,这个循环语句所使用的判断条件实现了多次循环,那么也就说明了当输入整数时,scanf函数的返回值是1,因为只有这样循环才能不断执行。
那么有些的小伙伴可能要说:“我明白了,scanf函数的返回值是1。”,这是完全错误的,scanf函数的返回值不是定值!
为了说明这个问题,我们再看一个例子。
题目要求:设计一个代码,能实现输入多组数并比较每组数中两个数的大小。
大家可以先想一下用什么循环判断条件,还能是scanf返回值为1吗?
参考代码:
#include <stdio.h>
void max(int x, int y)
{if (x > y)printf("%d>%d\n", x, y);else if (x == y)printf("%d=%d\n", x, y);elseprintf("%d<%d\n", x, y);
}
int main()
{int a, b;while (scanf("%d %d", &a, &b) == 2){max(a, b);}return 0;
}
代码运行结果:
从运行结果可以看到,循环条件使用scanf函数的返回值为2,实现了循环。因此,就目前来看,可以猜想,当scanf输入的值有多少个,其返回值就是多少。
但是,当输入x和1时,程序结束,说明scanf的返回值不是2,那又是多少呢?
这里,小灿写了两个代码进行测试:
scanf的返回值为0!
这次scanf的返回值为2! 说明当scanf读取到错误数据时就会停止。
这就回答了上面的问题。
总结:
从以上的实例分析,我们最终得出结论:scanf函数的返回值与正确输入数据的个数有关,当输入有错误时,错误输入之前正确输入数据的个数即为scanf的返回值。简而言之,scanf返回值等于读取到正确数据的个数。
补充:
循环条件也可以是(scanf("%d %d",&a,&b) != EOF)
EOF是End Of File的缩写,是在 stdio.h 里定义的常量(通常值为-1),表示输入流已经结束。
scanf函数的返回值是什么?相关推荐
- C语言scanf函数的返回值、scanf函数的安全版、在while条件中使用scanf函数
scanf函数的返回值,是正确读取的项数:读入一个数,返回1,读入2个数,则返回2,如此: VC2012,先做一个测试程序: 提示出错: error C4996: 'scanf': This func ...
- scanf函数的返回值问题
1.scanf()函数有返回值且为int型. 2.scanf()函数返回的值为:正确按指定格式输入变量的个数:也即能正确接收到值的变量个数. scanf("%d%d", & ...
- scanf函数的返回值以及在while循环中的应用
我们刚开始学习C语言时,经常会使用scanf函数输入参数.但关于scanf函数的返回值你清楚吗? 一.scanf的返回值 scanf函数的返回值分为以下三种情况: 整形,例如我们在用scanf函数进行 ...
- C语言scanf()函数的返回值
C语言scanf()函数的返回值 代码例子: #include<stdio.h> int main(){int num1=0,num2=0;int value= scanf("% ...
- [C语言]printf函数和scanf函数的返回值
先来看一道题 #include<stdio.h> int main() {int a=43;printf("%d\n",a);return 0; } 看完嘴角疯狂上扬, ...
- C语言中scanf()函数的返回值
c语言中简单的输入scanf函数和输出printf函数,我们经常使用,也很熟悉,但有时却还是会在这两个地方犯错. #scanf()函数 功 能: 执行格式化输入 用 法: int scanf(char ...
- scanf 函数的返回值
1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数. 例如执行 scanf("%d %d", &a, &b); 如 ...
- scanf( )函数的返回值
当从键盘连续进行输入时用while,但是程序自己不会通过正常的输入结束. scanf("%d%d",&a, &b); 如果a和b都被成功读入,scanf()的返回值 ...
- 函数的返回值可以不用赋值_C语言学习|函数的应用《一》
C语言为程序的结构提供了函数和模块 一.函数的定义与使用 <编程之道>中写道:"一个程序应该是灵活自由的.它的子过程就像串在一根线子上的珍珠."子过程在C语言中被称为& ...
最新文章
- 开源游戏机java模拟器_最棒的 7 款开源终端模拟器
- 12月8日中科院刘永鑫报告:宏基因组数据分析的机遇与挑战
- ES transport client使用
- time_t和字符串间的转化
- 【arduino】继续用arduino玩CyberPi童芯派之DA音频信号播放
- pandas使用get_dummies进行one-hot编码
- 11、Libgdx的音频
- 案例分析:你造吗?有个ORA-60死锁的解决方案
- break和continue区别python_1、Python中break和continue的区别
- Jetty 9 正式版发布!
- nvm管理node版本
- 信号与系统 --- 复指数函数(个人学习笔记)
- 黑客X档案的《黑客免杀入门》
- Qt界面制作简单教程,调用python代码
- MAC: docker compose mount permission denied 挂载失败
- 【线性代数】上三角矩阵/下三角矩阵
- CommandMethod介绍
- 世博版新君威提车作业
- Android 音视频配音之音频提取、截断、混音、合并、合成(二)——将提取的PCM根据时间戳截断
- 一个自学前端的4年工作总结【三十而立,拒绝躺平】