今天老师问我一个问题: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;