多输入(fmt.Scanln)

时间:2011-11-16 19:23:37

标签: go

为什么这不起作用,或如何使用fmt.Scanln获取多个输入?

编辑:如果我插入多个单词,那么我会收到错误“扫描:预期换行符”,我能做些什么呢?

    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 个答案:

答案 0 :(得分:2)

您在同一范围内多次重新声明err变量。 编译器错误应该已经清楚了。以下内容适用:

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