как я могу получить ввод от пользователя в GoLang (fmt.scan) - PullRequest
1 голос
/ 16 марта 2019

Я не могу принять ввод от пользователя в golang при использовании fmt.scan()

Пожалуйста, помогите мне.

package main

import "fmt"

func main() {
    fmt.Print("Enter text: ")
    var input string
    e, _ := fmt.Scanln(&input)
    fmt.Println(input)
    fmt.Println(e)
}

изображение кода

после остановки отладчика: изображение кода

добавить ошибку в код, ничего не произошло

func main() {
    fmt.Print("Enter text: ")
    var input string
    e, err := fmt.Scanln(&input)
    if err != nil {
        fmt.Fprintln(os.Stderr, err)
        return
    }
    fmt.Println(input)
    fmt.Println(e)
}

Изображение после добавления ошибки в мой код. Что «недоступно» в следующей строке (после моего значения ввода: «51213»)

1 Ответ

2 голосов
/ 16 марта 2019

Ваш код не имеет проблем. Если вы соберете свой код с помощью go build и запустите двоичный файл непосредственно в терминале, вы увидите, что ваш код работает.

Проблема, с которой вы столкнулись, из-за консоли отладки Delve и vscode. Консоль отладки vscode не поддерживает чтение из стандартного ввода. Вы можете проверить эту проблему: Невозможно отладить программы, которые читают из STDIN для деталей.

...