首页 > 解决方案 > 在 Go 中清除缓冲区

问题描述

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

例如:

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

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

标签: go

解决方案


使用 scan 而不是 scanf,因为您正在尝试采用 int,

    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")

推荐阅读