Go!のポータブルな解凍バージョンを使用しています。Scanf(および関連する関数)を使用して入出力コンソールの実装を実行しようとすると、ランタイム入力を挿入し、Enterキーを使用して検証すると、プログラムは2回または3回入力したように動作します(ループです)。明らかに(Cのように)reading-functionを呼び出した後、stdinをクリアする必要がありますが、その方法がわかりません。このばかげた基本的な問題を抱えているのは私だけのようです(なぜですか?)
この無限のループプログラムでは、フラッシュをうまく試みなかった後でも、質問が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();
}