當使用者與命令列應用程式互動時,按鍵通常需要他們按鍵Enter 鍵提交輸入。但是,某些場景需要無需 Enter 鍵即可立即識別字元。在 Windows 系統的 Go 中如何實現這一點?
對於Windows 系統,您可以使用以下步驟停用輸入緩衝並隱藏螢幕上輸入的字元:
1. // disable input buffering exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run() 2. // do not display entered characters on the screen exec.Command("stty", "-F", "/dev/tty", "-echo").Run()
使用這些命令後,您可以使用以下代碼來讀取字符,而無需按Enter:
var b []byte = make([]byte, 1) for { os.Stdin.Read(b) fmt.Println("I got the byte", b, "("+string(b)+")") }
當您運行時這個程序,它會顯示一條訊息,提示用戶按任意鍵退出。按任意鍵都會觸發 os.Stdin.Read(b) 調用,該調用將返回按下的字元並將其顯示在螢幕上。
以上是如何在不按 Enter 的情況下從 Go 中的控制台輸入讀取單一字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!