Мне нужно, чтобы пользователь вводил многострочный текст в консоль.многострочный ввод в терминале Перейти к применению
Вот мой код:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
for {
fmt.Println("How to read all lines here?")
in := bufio.NewReader(os.Stdin)
result, err := in.ReadString('\n')
if err != nil {
fmt.Println(err)
}
fmt.Println("\nresult")
fmt.Println(result)
}
}
я вставил в консоли:
Hello
World
Он выводит:
How to read all lines here?
Hello
World
result
How to read all lines here?
result
Hello
How to read all lines here?
result
World
How to read all lines here?
result
How to read all lines here?
Но я ожидаю, что это будет:
How to read all lines here?
Hello
World
result
How to read all lines here?
result
Hello
World
How to read all lines here?
Я думаю, мне нужно использовать что-то вроде EOF
вместо '\n'
Но как это сделать?
Update
ответ peterSo работает только в том случае, когда я пытаюсь вставить из буфера обмена текст с одним или несколькими пустыми строками в-между, например:
Hello
World
Он печатает
Enter Lines:
Hello
WorldResult:
Hello
Enter Lines:
Обновление 2
Замечательный обновленный ответ peterSO теперь работает даже для te xt с пустыми строками.
Это не работает, когда я пытаюсь вставить многострочный текст с пустой строкой между словами из буфера обмена. –
@MaximYefremov: Он делает сейчас. См. Мой пересмотренный ответ. – peterSO