跟同学探讨C问题,其中一个同学提及你们知道scanf和printf函数的返回值是什么吗?当时另外一个同学隐约回答了的样子,可是我是没有想过或是学习过这个东西,感觉蛮有意思,回过头来补习了一下。
作为C标准输入输出函数,scanf和printf两个函数分别需要完成标准输入和输出,往往并不需要知道他们的返回值是什么,及时知道返回值是多少貌似用处也不大,所以这个问题玩玩被人忽略,也很少有人关心。首先来谈谈scanf("格式控制",变量);的返回值。scanf函数返回值是他能够成功读入的变量的个数,举例说明:
int x;
x=scanf("%d,%d",&a,&b);
此时,如果你在终端输入两个int数那么它会返回2,因为成功输入两个符合要求的变量,but,如果你输入有一个不是int那么返回就不是2了。像输入2,a那么返回1,因为只有2成功输入。如果输入a,b那么返回为0,没有一个成功输入。
再来说明一个printf("%d,%d",a,b);的返回值。printf返回的是它打印了多少个字符。举例,
int a=1,b=200;
int x;
x=printf("%d,%d",a,b);
printf("%d",x);此时会输出:
1,2005所以返回值为5,打印了几个字符就会返回多少
如果
int a=100,b=200;
int x;
x=printf("%d,%d\n",a,b);
printf("%d",x);
输出结果为
100,200
8