0
我有以下的程序,它從標準輸入讀取用戶輸入:Golang從標準輸入,如何檢測特殊鍵(回車,退格...等),閱讀
var input string = ""
exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run()
exec.Command("stty", "-F", "/dev/tty", "-echo").Run()
var b []byte = make([]byte, 1)
for {
input += string(b)
}
我希望把某種條件內for循環,這樣當用戶按下「回車」(例如)時我可以「斷開」,或者當用戶按下(退格鍵)時從字符串中移除一個字符。但是,我無法弄清楚這兩個鍵的字節數組或字符串表示是什麼。我如何去解決這個問題?進入只是打印\ w和退格prins一個未定義的字符。
在unix系統上,「return」很可能是'「\ n」',並以字符串形式退格爲「\ b」或「\ x7f」。 – Vatine
爲什麼不使用'github.com/nsf/termbox-go'和/或'github.com/jteeuwen/keyboard/termbox'(它使用前者)?我有一種感覺,你選擇了一種相當奇特的方法來解決你的任務。相反,您應該將終端切換到「原始」模式並處理髮送給您的任何數據。 'termbox'爲你做了繁重的工作。 – kostix
請考慮使用http://godoc.org獲取這些軟件包可以爲您做什麼(以及搜索其他選項)的概述。 – kostix