2013-01-14 30 views
2

我需要處理這個跨平臺的方式:控制檯輸入 - 清算後按輸入

當我按下「CIN」行輸入,我想它清除一切處理,包括換行符。

這有可能嗎?或者我需要找到一些跨平臺的getch()實現,並且這樣做?

+0

請解釋你的意思是「清除所有處理過的東西」。這對不同的人可能意味着不同的事情。 –

+0

按enter鍵清除輸入的文本和換行符。 – user1873947

+0

我認爲它歸結爲'getch()'(== POSIX標準)。這就是爲什麼我問你在[最後一個問題]你實際使用的操作系統(http://stackoverflow.com/questions/14324663/cross-platform-way-of-having-non-blocking-console-input)。實際上(至少部分)符合POSIX標準的Linux和Windows實現(與ncurses相同)。我也看到提示'getch()'被棄用在windows中使用,應該使用['_getch()'](http://msdn.microsoft.com/en-us/library/078sfkak%28v= vs80%29.aspx)。 –

回答

4

我能看到的唯一跨平臺方式是完全放棄標準輸入和輸出流,並使用諸如ncurses(其具有Windows端口)。

它可以直接處理讀鍵,有或沒有回聲,並可以清除屏幕。