2016-08-12 133 views
-1

我正在嘗試使用CodeBlock在Windows上的「C編程語言」的一個例子,我不知道如何獲得用戶輸入而不必按Enter鍵。這個程序使用getchar()計算輸入行數,所以當我運行它時,「enter」只能作爲\ n使用,並且不允許我發送輸入。有沒有其他方法可以做到這一點?CodeBlocks上的C:如何在不按「enter」的情況下發送用戶輸入?

編輯 問題出在編譯器上。在查看它一段時間後找出它

+1

看看'getch'函數,它獲得一個按鍵。您當然可以使用循環根據需要多次執行'getch'。我有一種感覺,可能有更高層次的做法。 –

+1

'這個程序計算輸入中的行數'哪個程序? – Michi

回答

0

這不是C編程語言的問題。它與你用來與C程序接口的終端有關。

默認情況下,大多數終端會緩存您鍵入的輸入,並且只有在您按Enter鍵結束該行後纔將其發送到程序。這是允許您使用退格鍵更正輸入錯誤之前,它們被髮送到C程序。

如果您沒有創建交互式程序,那麼如果您重定向程序輸出以從文件而不是從終端讀取,則getchar()將不必等待。畢竟,輸入文件從一開始就在那裏。

./myprogram.exe < myinputfile.txt 

如果你想創建一個交互式程序,那麼你可以做最簡單的事情是接受了輸入是一個全系列的一次。用戶在終端上輸入的內容就是期望的。

如果您希望您的應用程序立即響應按鍵,那麼您將需要使用標準C庫之外的東西。例如,在Linux中,您可以使用ncurses來創建可立即響應按鍵的終端應用程序,包括箭頭鍵等。

相關問題