Есть ли способ скопировать текущую строку символов терминала в 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
Программа работает правильно, пункт назначения получает «фабрикацию», но визуально это не правильно