問題代碼
int main()
{
char str[128];
char c;
scanf("%s", str);\\第一個scanf
scanf("%c", &c);\\第二個scanf
system("pause");
return (0);
}
如上,scanf("%c", &c);
這句不可以正常接收字符,因為在scanf("%s", str);
中敲下“Enter”鍵后,會向鍵盤緩沖區發送一個“\r”(回車)和一個“\n”(換行),“\r”(回車)被第一個scanf接收,“\n”(換行)被第二個scanf接收,直接賦給了c。
解決辦法
在兩個scanf中插入 fflush(stdin); 或者getchar(); getch();都可以。
其中后兩者視情況而定,前者全部情況適用。