首页 > 代码库 > 关于scanf的返回值

关于scanf的返回值

  今天写一个小程序时误用while(scanf("%d",&b)!=a),以为scanf的返回值就是输入的值。

其实真相是:

scanf返回接收到的变量值的个数。 
int  a,b,c。
a 1进去时,试图用字符‘a’对a赋值,肯定是错的,于是退出,返回成功接收到赋值的个数 0.
1 a进去时,首先a能获取1.但b不能获取‘a‘,于是返回只是1 
如果是  1 1的话,那就都成功,返回2

即返回值应为正确输入的个数,毕竟人家是输入函数嘛。

关于scanf的返回值