在 Go 中立即从标准输入读取字符
在 Go 中,从标准输入读取通常需要按 Enter 才能接收输入。但是,如果您希望应用程序立即响应任何按键,类似于 C# 中的 Console.ReadKey(),以下解决方案可以实现这一点。
提供的代码使用 stty 命令禁用输入缓冲,确保击键立即得到处理。字符回显也被抑制以防止显示输入。
这里是代码:
package main import ( "fmt" "os" "os/exec" ) func main() { // Disable input buffering exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run() // Suppress input echoing exec.Command("stty", "-F", "/dev/tty", "-echo").Run() var b []byte = make([]byte, 1) for { os.Stdin.Read(b) fmt.Println("I got the byte", b, "("+string(b)+")") } }
当此代码运行时,按任意键立即将字符字节表示形式和相应的字符返回到控制台.
以上是如何在 Go 中即时读取标准输入中的单个字符?的详细内容。更多信息请关注PHP中文网其他相关文章!