问题:
void main() {int a,b,c; c=scanf("%d %d",&a,&b); printf("%d",c); }为什么我输入a 1 , c的值就为0,输入1 a,c的值为1??????????????
答案:
scanf返回接收到的变量值的个数。 int a,b,c。 a 1进去时,试图用字符‘a’对a赋值,肯定是错的,于是退出,返回成功接收到赋值的个数 0. 1 a进去时,首先a能获取1.但b不能获取'a',于是返回只是1 如果是 1 1的话,那就都成功,返回2并且,scanf读取数据的时候会自动跳过空格、换行符、制表符等。而getchar会读取每个字符,包括空格、制表符、换行符。
如果scanf 后继续调用getchar()会取到 回车。