第一次使用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
}
- 1 回答
- 0 关注
- 245 浏览
添加回答
举报
0/150
提交
取消