我有 2 个线程:其中一个不断地向控制台输出一些值,假设每秒递增一个 int 值 - 所以控制台上的每一秒都是 1,2,3... 等等。
另一个线程正在等待用户输入 - 使用命令 cin。
这是我的问题:当我开始输入内容时,当需要计算 int 值时,我的输入会从输入字段中删除,并以 int 值输入控制台。所以当我想输入“hello”时,它看起来像这样:
1
2
3
he4
l5
lo6
7
8
有没有办法阻止我的输入被放入控制台,而其他线程正在写入控制台?
仅供引用,这对于客户端的聊天应用程序是必需的 - 一个线程正在监听消息并在消息一进来就输出此消息,另一个线程正在监听要发送到服务器应用程序的用户输入。
最佳答案
通常终端本身会回显键入的键。您可以关闭它并让您的程序回应它。这个问题会给你如何做的指导Hide password input on terminal
然后您可以只使用一个线程来处理输出。
关于c++ - 如何在其他线程输出到控制台时防止输入文本中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18160483/