今天在寫一個程序,想讓這個程序每次只接受一個字符輸入,然後能馬上顯示出來.
使用的函數爲getchar(),但是發現由於getchar是從stdin的緩衝區進行讀取.如果緩衝區還有信息會再下次讀取緩衝區.
這就造成即使不輸入也會輸出很多之前遺留的字符.
解決辦法:
在獲取完字符後,加入這句話一次性讀完回車前所有字符.
char ch;
ch = getchar();
while('\n' == getchar());
這樣就可以了.網上有提到fflush或者setbuf,也用了一下,但似乎不能解決這個問題.