Я не могу принять ввод от пользователя в golang при использовании fmt.scan()
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»)
Ваш код не имеет проблем. Если вы соберете свой код с помощью go build и запустите двоичный файл непосредственно в терминале, вы увидите, что ваш код работает.
go build
Проблема, с которой вы столкнулись, из-за консоли отладки Delve и vscode. Консоль отладки vscode не поддерживает чтение из стандартного ввода. Вы можете проверить эту проблему: Невозможно отладить программы, которые читают из STDIN для деталей.