Go中的清除缓冲区

时间:2019-01-02 13:55:55

标签: go

我是Golang的新手,在尝试获取连续输入时,第一个scanf()获取了输入,其余的scanf()被省略了

例如:

 fmt.Println("Enter A: ")
  fmt.Scanf("%d",a)
  fmt.Println("Enter B: )
  fmt.Scanf("%d",b)

在这种情况下,第一个Scanf工作,而第二个没有任何输入

2 个答案:

答案 0 :(得分:0)

我认为您输入错误:

fmt.Println("Enter B: ) 

fmt.Println("Enter B: ")

注意到差异了吗?

答案 1 :(得分:0)

由于要获取整数,因此请使用scan而不是scanf

    var a, b int    
    fmt.Println("Enter A: ")
    fmt.Scan(&a)
    fmt.Println("Enter B: ")
    fmt.Scan(&b)

如果要输入字符串,

    reader := bufio.NewReader(os.Stdin)
    var a,b string
    fmt.Println("Enter A: ")
    a, _ := reader.ReadString("\n")
    fmt.Println("Enter B: ")
    b, _ := reader.ReadString("\n")