今天写一个小程序时误用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 即返回值应为正确输入的个数,毕竟人家是输入函数嘛。
今天写一个小程序时误用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 即返回值应为正确输入的个数,毕竟人家是输入函数嘛。