我刚刚做了一个小聊天 CLI 应用程序,它实际上工作得很好!
不幸的是,当一个人输入一条消息并同时接收其他人的消息时,两者都是交错的......这会变得非常糟糕:
elton: Hey!
john: how are you doing?
fine anjohn: still not to bed?!
d john: haha
you?elton: fine and you?
我正在寻找一种方法来避免这种问题。例如“保留”最后一行供用户输入或在接收到数据时处理一些动作以重新计算用户输入的位置。
经过一番研究,我发现我将使用 getch() 逐个检索每个字符。这样我就可以定期检查是否有新消息正在等待显示并处理这种情况。
但是如果我使用 getch() 我必须手动重新定义基本操作(例如退格、左右移动......),一些字符占用超过一个字节。简而言之,它无法使用。