关于Golang的一些问题
构建一个无限循环,每五秒输出 i(初值为 1),i 的值随每次输出自增 1,要求
在任意过程中都能接受命令行输入,通过回车结束进程。
package main import ( "bufio" "fmt" "os" "runtime" "sync" "time" ) var wg1 sync.WaitGroup var FLAG int = 1 func prin() { for i:=1; ;i++ { fmt.Println(i) time.Sleep(5 * 1000000000) if FLAG==0 { wg1.Done() os.Exit(0) } } } func loop() { for { inputReader := bufio.NewReader(os.Stdin) input, _ := inputReader.ReadString('\n') if input != "\n"{ fmt.Print("The input type: ", input) } else { wg1.Done() FLAG=0 } } } func main() { runtime.GOMAXPROCS(2) wg1.Add(1) go prin() go loop() wg1.Wait() }
不知道为什么这个程序在Goland里面可以跑的通,但是在cmd上面就跑不了。
(难道cmd把回车吞了?
cmd:
Goland:
是什么问题我不清楚,但是如果有大佬知道,希望能告诉我一下!感谢!