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