Как скопировать строку из терминала - PullRequest
1 голос
/ 14 февраля 2020

Есть ли способ скопировать текущую строку символов терминала в Go? Я хочу заменить то, что пользователь печатает в консоли, на вывод программы. Затем я хочу вставить то, что он напечатал в следующей строке, чтобы он мог продолжить то, что печатал. Вывод будет выглядеть чище. В противном случае вывод программы находится между тем, что он печатал.

Ниже приведены части двух одновременных функций:

for {
    // print username before typing field in consoles
    fmt.Print(username, ": ")
    // read the message from the user
    message, _ := reader.ReadString('\n')

Приведенное выше позволяет пользователю отправлять сообщения, оставшийся код опускается, поскольку это не так. часть проблемы

Ниже приведено сообщение из другого источника

// set message display format
    msgDisplay := "%s : %s"
    // populate the message to the display format
    msgDisplay = fmt.Sprintf(msgDisplay, t.Username, t.Message)
    // print message on console
    fmt.Println(msgDisplay)

Вы можете сделать вывод, что это похоже на общение в чате. Представьте, что пользователь печатает в части отправки сообщений и там было входящее сообщение из какого-то другого источника. Например: пользователь "Jojo" печатал "изготовление", входящее сообщение от "Renu" было "2019" достигнуто до того, как "Jojo" закончил печатать, Консоль должна выглядеть

Renu: 2019
Jojo: изготовление

Текущее поведение

Jojo: fabrRenu: 2019

Jojo был в процессе ввода сообщения и входящее сообщение визуально прервано с вводом. Если Jojo продолжит печатать, он будет выглядеть

Jojo: fabrRenu: 2019cation

Программа работает правильно, пункт назначения получает «фабрикацию», но визуально это не правильно

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