首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【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函数的返回值,可以很好的解决这一问题。

关于【C语言编程锦囊】,可能你还想知道:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171210B0EM5Y00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券