猿问

GOLang Scanf错误

第一次使用Scanf两次时,它将获得用户输入,但是第二次则没有,并退出该功能。这仅是在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

}


吃鸡游戏
浏览 246回答 1
1回答

FFIVE

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}
随时随地看视频慕课网APP

相关分类

Go
我要回答