Это публикует вход дважды - PullRequest
0 голосов
/ 29 ноября 2011

Я хочу прочитать входные данные из stdin и затем отобразить их. На данный момент я делаю это так:

in := bufio.NewReader(os.Stdin);
input, err = in.ReadString('\n');
if err != nil {
    fmt.Println("Error: ", err)
    os.Exit(1)
}
fmt.Printf("This is your", input)

... но после запуска этого и ввода какого-либо ввода он всегда отображает мой ввод дважды так:

This is just a test
This is your This is just a test

Есть ли вообще удалить первую строку?

Ответы [ 2 ]

4 голосов
/ 29 ноября 2011

Я еще ничего не пробовал с пакетом, но я думаю, что это может быть полезно в этом случае: exp / terminal . В частности, документация по функции ReadPasword :

ReadPassword reads a line of input from a terminal without local echo.
This is commonly used for inputting passwords and other sensitive data.
The slice returned does not include the \n.
1 голос
/ 29 ноября 2011

Я полагаю, ваша первая строка - это просто ваш вводимый текст? Это на самом деле функция терминала процесса. Поскольку среда выполнения go обрабатывает Stdin как любой другой файл, у вас нет прямого доступа к атрибутам терминала. Однако вы можете взломать что-нибудь вместе с CGO и подходом, описанным здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...