作者:陈浩颖美娇承湖_527 | 来源:互联网 | 2023-02-06 06:29
1> Chris Drew..:
该行bufio.NewScanner(os.Stdin)
只为stdin创建一个新的扫描程序,它实际上不会进行扫描,也不会阻止等待用户输入.在您Scan
通过"用户名:"和"密码:"打印之前,它实际上不会从标准输入读取.
您可能不需要两个用于用户名和密码的扫描程序.一个扫描仪应该足够你可能想要将"用户名:"和"密码:"的打印移动到for循环中,如果你想再次尝试那么它看起来像这样:
func main() {
scanner := bufio.NewScanner(os.Stdin)
for {
fmt.Print("Username: ")
if !scanner.Scan() {
break
}
user := scanner.Text()
fmt.Print("Password: ")
if !scanner.Scan() {
break
}
pass := scanner.Text()
if login(user, pass) {
fmt.Println("Signed in.")
os.Exit(3)
} else {
fmt.Println("Incorrect username or password, please try again:")
}
}
}