英文:
Multiple input (fmt.Scanln)
问题
为什么这个不起作用,或者如何使用fmt.Scanln
获取多个输入?
**编辑:**如果我插入多个单词,那么我会得到错误信息“Scan: expected newline”,有什么办法可以解决这个问题吗?
var username string
print("用户名:")
_, err := fmt.Scanln(&username)
if err != nil {
fmt.Println("错误:", err)
}
var password string
print("密码:")
_, err := fmt.Scanln(&password)
if err != nil {
fmt.Println("错误:", err)
}
var status string
print("状态:")
_, err := fmt.Scanln(&status)
if err != nil {
fmt.Println("错误:", err)
}
fmt.Println(username, password, status)
英文:
Why does this doesn't work, or how to get multiple input with fmt.Scanln
?
EDIT: If I insert more then one word then I get the Error "Scan: expected newline", anything I can do about this?
var username string
print("Username: ")
_, err := fmt.Scanln(&username)
if err != nil {
fmt.Println("Error: ", err)
}
var password string
print("Password: ")
_, err := fmt.Scanln(&password)
if err != nil {
fmt.Println("Error: ", err)
}
var status string
print("Status: ")
_, err := fmt.Scanln(&status)
if err != nil {
fmt.Println("Error: ", err)
}
fmt.Println(username, password, status)
答案1
得分: 2
在相同的作用域中多次重新声明了err变量。
编译器错误应该已经明确指出了这一点。以下代码可以正常工作:
var err error
var username string
print("用户名:")
_, err = fmt.Scanln(&username)
if err != nil {
fmt.Println("错误:", err)
}
var password string
print("密码:")
_, err = fmt.Scanln(&password)
if err != nil {
fmt.Println("错误:", err)
}
var status string
print("状态:")
_, err = fmt.Scanln(&status)
if err != nil {
fmt.Println("错误:", err)
}
fmt.Println(username, password, status)
return
英文:
You are re-declaring the err variable multiple times in the same scope.
The compiler error should have made that clear. The following will work:
var err error
var username string
print("Username: ")
_, err = fmt.Scanln(&username)
if err != nil {
fmt.Println("Error: ", err)
}
var password string
print("Password: ")
_, err = fmt.Scanln(&password)
if err != nil {
fmt.Println("Error: ", err)
}
var status string
print("Status: ")
_, err = fmt.Scanln(&status)
if err != nil {
fmt.Println("Error: ", err)
}
fmt.Println(username, password, status)
return
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论