为了账号安全,请及时绑定邮箱和手机立即绑定

GOLang Scanf错误

GOLang Scanf错误

Go
吃鸡游戏 2021-05-21 18:14:43
第一次使用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}
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

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

}


查看完整回答
反对 回复 2021-05-24
  • 1 回答
  • 0 关注
  • 245 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信