浅析printf和scanf的返回之问题

今天老师问我一个问题:printf函数和scanf函数有没有返回值。

我当时就蒙了,我不知道呀!

确实这是一个比较冷门的问题,大多数人都不会怎么去关注它。

经过我的一番研究,终于有所收获。


scanf("格式控制",变量);

首先附上一段代码:

        int a = 0, b = 0;
int x = 0;
x=scanf("%d,%d",&a,&b);
printf("%d\n",x);

如果输入两个int型的数1,2,那么x就是2,如果输入一个int型的数据(1,a),那么x的值就是1,但如果输入(a,1),x的值为0。

在此我们可以得出结论:从左边的变量开始,如果scanf成功接收一个指定数据类型,返回值加1,如果遇上不是指定类型的数据,就停止计算。



printf(“可是控制”,变量);

代码如下:

        int a = 5, b = 30;
int x = 0;
x=printf("%d%d",a,b);
printf("%d\n",x);

输出的值为3

代码改为:int a=10,b=30;

输出的值为4

可见x的值就是成功输出的字符的个数,在此基础上如果两个%d之间加一个空格号,那么x也会加1;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值