2012-11-23 64 views
-5

如何使用C代碼發送一個換行命令以避免按下回車鍵的請求時使用讀取字符函數如fgetch或其他? 謝謝。發送換行符字符fgetc或類似的C

+1

這是一個非常糟糕的問題? O_O –

+1

這不是一個好問題,部分原因是它正遭受[XY問題](http://mywiki.wooledge.org/XyProblem)的困擾。問題的一個更好的版本是'如何在用戶點擊返回之前從輸入中讀取字符?' (或'...沒有用戶點擊返回?')。這會詢問你想要達到什麼目的,而不是問怎樣通過一種不能用來實現結果的機制來實現它。 –

回答

1

你不能發送一個換行到fgetch之類,強制他們釋放緩衝區。原因是終端可能與程序運行在不同的機器上;該程序無法訪問終端的緩衝區,因此它不能強制終端刷新其緩衝區。

如果終端處於規範模式,終端將僅緩衝行輸入。因此,阻止這種情況發生的方式是,讓您立即獲得每個輸入字符,即將其從規範模式中取出。一旦你這樣做,你會得到每個人物被按下。

link I gave you in your last question解釋瞭如何做到這一點。或see the Glibc manual瞭解更多詳情。

+0

謝謝!好的解釋! =)(以前的鏈接,埃姆,我不是英語,它花了我很多時間瞭解) –

+1

@PizziraniLeonardo沒問題!很高興我能幫上忙。 –