有什么方法可以控制端子的输入和输出? 例如,我按向左箭头键并在控制台上打印“ left”。
我将尝试使用https://github.com/eiannone/keyboard,但它不起作用。 https://github.com/nsf/termbox-go和其他类似的东西太复杂了。
bufio.NewReader(os.Stdin)
bufio.NewScanner(os.Stdin)
fmt.Scanln(&input)
需要点击Enter
func main() {
e := make(chan bool)
go changeInput()
<-e
}
func changeInput() {
for {
inp := "" // ????
if inp == "Left arrow" {
fmt.Println("left")
}
}
}
我发现的解决方案不起作用。我想实时从用户输入中获取数据。
答案 0 :(得分:0)
您可能需要阅读一些有关“原始”终端模式的信息,本文的第2章和第3章为您提供了更多详细信息(使用C语言,但也适用于Go):https://viewsourcecode.org/snaptoken/kilo/index.html