我正在尝试编写一个程序,在按下 cntrl + c 时打印“等待”并继续打印从 1 到 10 的数字。否则,应该打印从 1 到 10 的数字,每个数字之间延迟 10 秒.但是,每当我单击并且“等待”不被打印时,control+ c 都不会被识别,只有 1 到 10 的数字是。
func main() {
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt)
go func() {
for sig := range c {
fmt.Print(sig)
fmt.Print("WAIT")
}
}()
for i := 1; i <= 10; i++ {
fmt.Println(i)
time.Sleep(time.Second)
}
}
最佳答案
您需要确保您的终端或终端仿真器设置已设置为执行您正在尝试执行的操作。终端驱动程序做了很多过滤。例如,在 Enunchs 上, key 被翻译成发送到应用程序,然后作为 .
您的终端驱动程序可能只是忽略了 .它可能处于 passthu 模式,在这种模式下它只是作为一个字符发送到您的应用程序。
如何进行此类设置取决于您的操作系统。
关于go - CTRL + C 未被捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53169391/