GOLang Scanf错误

ame*_*ros 5 go

当第一次使用Scanf时它获得useres输入,但第二次不使用,并返回函数.这只是在Windows上运行时的一个问题.当我在Mac上运行它时,它会按预期工作,首先询问用户的用户名和密码.以下是问题中的代码.我不确定为什么它在Mac上运行正常但在Windows上运行不正常.任何提前帮助表示赞赏.谢谢.

func credentials() (string, string) {

    var username string
    var password string

    fmt.Print("Enter Username: ")
    fmt.Scanf("%s", &username)

    fmt.Print("Enter Password: ")
    fmt.Scanf("%s", &password)

    return username, password
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 12

Scanf有点挑剔,因为它使用空格作为分隔符,并且(至少对我而言)相当不直观.Bufio很好地抽象了其中一些:

func credentials() (string, string) {
    reader := bufio.NewReader(os.Stdin)

    fmt.Print("Enter Username: ")
    username, _ := reader.ReadString('\n')

    fmt.Print("Enter Password: ")
    password, _ := reader.ReadString('\n')

    return strings.TrimSpace(username), strings.TrimSpace(password) // ReadString() leaves a trailing newline character
}
Run Code Online (Sandbox Code Playgroud)