关于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

即返回值应为正确输入的个数,毕竟人家是输入函数嘛。
posted @ 2017-01-14 11:43  汪神  阅读(1249)  评论(0编辑  收藏  举报