當我運行下面的代碼時,它按預期工作。爲什麼我的scanf語句中的空格有所作爲?
#include <stdio.h>
int main()
{
char c;
scanf("%c",&c);
printf("%c\n",c);
scanf(" %c",&c);
printf("%c\n",c);
return 0;
}
如果刪除在第二scanf
呼叫(scanf("%c",&c);
)的空間,程序與第二scanf
的掃描'\n'
,並輸出相同的不良的行爲表現。
爲什麼會發生這種情況?
搜索和閱讀scanf和格式化字符 - 即說,空間正在吃你的回車從第一個輸入,這就是爲什麼你有你做的結果。 – KevinDTimm