2012-12-03 69 views
4

可能重複:
C/C++: Capture characters from standard input without waiting for enter to be pressedgetch()等待Enter鍵?

我使用C-免費的Windows 7 4標準,我寫一個C程序。

我使用getch()作爲暫停程序的功能,但是,字符在屏幕上按下了回聲,並且在繼續前等待Enter鍵被按下(它看起來沒有與scanf的工作方式不同)。我嘗試了getche(),雖然echo出現,但它工作正常。

getch()函數有什麼問題?

回答

0

事實上,有幾種方法可以pause你的程序的執行,直到你輸入的東西,做的一個方法是使用getchar()(這是函數集的stdio.h和一個正式的標準庫的一部分),它會與getch()的效果相同(此功能是conio.h函數庫的一部分,它不是官方庫)。

如果你的問題是,你想避免每次輸入一個字符是不是在你的問題很清楚)時間緊迫Enter,然後閱讀本:How to avoid press enter with any getchar()

+0

不,gethcar也回聲猶如getche –

2

的殘培,wgetch,mvgetch和mvwgetch ,例程從窗口讀取字符 。在無延遲模式下,如果沒有輸入正在等待,則返回值 ERR。在延遲模式下,程序將等待系統 將文本傳遞給程序。根據 cbreak的設置,這是在一個字符(cbreak模式)之後,或者在第一個 新行(nocbreak模式)之後。在半延遲模式下,程序會等待,直到輸入 字符或達到指定的超時時間。

或多或少在Windows中使用相同的方法。您可以使用_getch()來獲取應用程序的輸入字符而無需緩衝。