我正在使用 Go 的便携式解压缩版本!每当我尝试使用 Scanf(以及相关函数)进行输入输出控制台实现时,插入运行时输入并使用 enter 进行验证时,程序的行为(它是一个循环)就像我输入了两次或三次一样。显然(就像在 C 中一样)调用读取函数后需要清除标准输入,但我不知道该怎么做。我似乎是唯一一个遇到这个愚蠢的基本问题的人(为什么?)
在这个无休止的循环程序中,即使在我糟糕的冲洗尝试之后,这个问题也会被问和回答 3 次:
package main
import "fmt"
import "time"
var globalBad, globalGood int
func Thread1() {
var i int
var t string
for {
fmt.Println("Please give I")
fmt.Scanf("%d", &i)
fmt.Println(t);
flush();
globalBad = i;
//fmt.Println(i);
time.Sleep(1000 * time.Millisecond);
fmt.Println("Meet globalGood %f", globalGood )
if i == 12 {return};
}
}
func Endless(){
var LocalBad int ;
for{
if LocalBad != globalBad{
LocalBad = globalBad;
globalGood = globalBad*2;
}
time.Sleep(1000 * time.Millisecond);
}
}
func flush(){
var i byte
for i > 0{
fmt.readByte(i, var j);
}
fmt.Println("Done");
}
func main() {
globalBad = 0;
go Thread1();
Endless();
}