时间:2024-04-23 12:04:27编辑:fsb-bearing.com
在学习C语言时,通常使用scanf()函数获得从键盘输入的数据。
那么scanf()函数有返回值吗?回答是肯定的。
1.scanf()函数有返回值且为int型。
2.scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。
例如:
scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf()的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a和b都未被成功读入,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF。EOF是一个预定义的常量,等于-1。#define EOF -1
我们可以通过下面的代码得到验证。
int main()
{
int a;
int b;
int c;
int x;
printf("请输入三个整数:n");
x=scanf("%d%d%d",&a,&b,&c);
printf("x=%dn", x);
}
这里用变量x接收scanf()函数的返回值,并输出显示出来。
上述代码要求运行中输入三个整数:
如果输入5 6 7,则x的值为3;
如果输入5 6 d(即给c 赋值不正确),则x的值为2;
如果输入5 t d(即给b和c 赋值不正确),则x的值为1;
如果输入d 5 2 则输出x=0,也就是说第一个字符d输入错误,整个scanf()没有收到输入值。
其实scanf()的返回值是很有用的,比如在使用这个函数进行接收值时,我们有必要知道对要给赋值的变量是否正确的赋值成功了,所以可以使用if(scanf("%d,%d",&a,&b)==2)这样语句来判断是否正确地给所有的变量赋值,正确的话才能使用这个变量参与运算,这样才能提高代码的安全性。
例如,下面的问题就需要借助于scanf()返回值作为循环的条件。
本文标题:scanf函数c语言用法(C语言关于scanf函数的返回值) - 社会百态
本文地址:/shbt/66402.html