【C语言编程锦囊·连载42】scanf函数的返回值是什么? | 您所在的位置:网站首页 › 函数返回值是多少啊 › 【C语言编程锦囊·连载42】scanf函数的返回值是什么? |
问题阐述 scanf函数是用于数据输入的,输入变量的值被改变,那么scanf函数本身是否有返回值,返回值是什么意义呢? 专家解答 scanf函数的返回值很少有人用到,它是一个整数,用于表示成功输入数据的个数,请看下面的例子: #include "stdio.h" main() { int a,b,c; printf("输入三个整数:"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c); } 执行结果: 图6.16 scanf()函数的错误输入 程序中由于对整数b试图输入2.5,而导致错误,实际上b只能得2,“.5”后的所有数据输入出错,不能正确赋值,因此c得不到正确结果。如果程序在这个基础上继续运行,会导致后面的错误越叠加越多,怎样由程序本身检查出这种错误呢,这时就可以用scanf函数的返回值来实现。 修改一下程序,取出scanf函数返回值,如果它的值是3,那么表示所有数据均已正确输入,如果小于3,必定出现错误输入。 以上程序可修改为: #include "stdio.h" main() { int a,b,c,n=0; printf("输入三个整数:"); while(n!=3) { n=scanf("%d%d%d",&a,&b,&c); if(n printf("数据格式错误,请重新输入。\n"); flushall(); } printf("a=%d,b=%d,c=%d\n",a,b,c); } ![]() 图6.17 加入错误检查的scanf()函数输入 专家点评 输入数据格式错误问题,很多初学者都会忽略,认为输入时总是没错的。 通过scanf函数的返回值,可以很好的解决这一问题。 |
CopyRight 2018-2019 实验室设备网 版权所有 |