Многократный ввод (fmt.Scanln) - PullRequest
2 голосов
/ 16 ноября 2011

Почему это не работает, или как получить множественный ввод с 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 Ответ

2 голосов
/ 16 ноября 2011

Вы повторно объявляете переменную 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...