对于我的情况,Tim和Bob正在使用我的C聊天客户端和服务器聊天。我的聊天客户端和服务器在bash终端上执行。此聊天程序的光标是〜键。
蒂姆向鲍勃发送了一条消息,上面写着“嘿”。现在说Bob正在向Tim输入一条消息时收到此消息。鲍勃想要给蒂姆发送“你好”,但他还没有完成写作(所以他到目前为止只写了“Hel”)。我希望我的应用程序能够将Bob的提示和他的条目保留到终端的底部,并在提示上方显示Tim的消息。鲍勃应该仍然可以向蒂姆完成他的消息,并且能够看到蒂姆的消息。从Bob的客户看来,下面是我的意思。有没有办法用C来完成这样的事情?
........................之前...................... .................................................. ....................后............................. ..
............................... .................................
............................... <Tim> Hey
Enter Message> Hel~ Enter Message> Hel~
答案 0 :(得分:0)
如果您知道您正在使用ANSI兼容终端并且知道您的提示长度和光标位置(假设您允许编辑输入以便光标可能不在当前输入的末尾)并且不允许不止一行输入[那里有很多假设]然后看起来你可以输出一个或多个'向上光标'序列然后回车,你的消息来自Tim,一个回车,一个换行然后很多'游标右'序列将光标放回原位。
但是,基本上,如果你想处理这种复杂情况,那么你将转向curses / ncurses / terminfo类库。