如何在不中断用户输入的情况下打印输出?

kgqe7b3p  于 2021-09-29  发布在  Java
关注(0)|答案(0)|浏览(140)

我正在尝试创建一个命令行聊天应用程序。我希望用户能够在输入消息的过程中接收消息,而不会中断消息。
例如,如果我的程序是:

from time import sleep
from threading import Thread

def print_received_message():
    counter = 0
    while True:
        print(counter)
        counter += 1
        sleep(1)

t = Thread(target = print_received_message)
t.start()

while True:
    my_message = input('>')
    print(my_message)

我现在已经输入了2秒钟的信息,我希望看到以下内容:

0
1
2
> Currently typ

如果我在4秒钟后完成输入和发送消息,我希望看到:

0
1
2
3
4
Currently typing
>

然而,我目前看到:

0
> 1
Cur2
rent3
ly4
5

我看过这篇文章,但解决方案将输出排队,直到我完成输入,而我希望输出能够实时打印。
我考虑过:当消息到达时,将用户输入的内容保存到far,清除行,打印新消息,然后打印保存的消息进度。然而,在用户不先按enter键的情况下获取用户输入似乎很困难,而且这种解决方案总体上感觉很粗糙。
我有什么办法可以实现这个目标,还是不可行?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题