go - 如何从终端复制一行
问题描述
有没有办法在 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”正在输入“fabrication”,来自“Renu”的传入消息是“2019”在“Jojo”完成输入之前到达的,控制台应该看起来
Renu:2019
Jojo:制作
当前行为
乔乔:fabrRenu:2019
Jojo 正在输入消息,而传入的消息在视觉上与输入打断了。如果 Jojo 继续打字,它会看起来
乔乔:fabrRenu:2019阳离子
程序正常工作,目的地收到“制造”,但视觉上不正确
解决方案
推荐阅读
- android - 将底部导航视图样式更改为图片
- tensorflow - 如何使用 jupyter notebook 在多个 CPU 上运行 Tensorflow
- javascript - 用变量替换输入值和
- java - 无法打开图库选择图像并将其放置在 ImageView 中
- api - Clockify API:项目的时间报告并按用户汇总
- jquery - 用鼠标悬停改变形状的颜色?
- spring-boot - 找不到 Spring Boot 插件
- typescript - 打字稿路径在 Express 项目中不起作用
- python - ValueError:传递的项目数错误 2,位置暗示 1
- python - 将每个值的频率分配给具有新列的数据框