xotkot
@xotkot
хорошо есть и хорошо весьма

Как правильно прочитать ввод строки с пробелами в консоле?

в общем суть вопроса изложена в заголовке
fmt.Scan* читает по словам (

п.с.
РЕШЕНИЕ
Ниже приведен пример с двумя простенькими функциями для чтения строки(с пробелами) в консоли, составленный на основе ответов:
package main

import ("fmt"; "os"; "bufio")

func Scan1() string {
	in := bufio.NewScanner(os.Stdin)
	in.Scan()
	if err := in.Err(); err != nil {
		fmt.Fprintln(os.Stderr, "Ошибка ввода:", err)
	}
	return in.Text()
}

func Scan2() string {
	in := bufio.NewReader(os.Stdin)
	str, err := in.ReadString('\n')
	if err != nil {
		fmt.Println("Ошибка ввода: ", err)
	}
	return str
}

func main() {
	fmt.Println("LINE1 : ", Scan1())
	fmt.Println("LINE2 : ", Scan2())
}
  • Вопрос задан
  • 12817 просмотров
Решения вопроса 3
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
Как уже заметил SilentFl правильно использовать bufio.
bufio.NewReader(os.Stdin) если вам нужен Reader или
bufio.NewScanner(os.Stdin) если нужен Scanner

myscanner := bufio.NewScanner(os.Stdin)
myscanner.Scan()
line := myscanner.Text()
Ответ написан
@SilentFl
oVokick
@oVokick
Еще можно в одну строку:
text, _ := bufio.NewReader(os.Stdin).ReadString('\n')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы