我正在编写一个win32控制台应用程序,它有两个线程,一个继续使用cout
向控制台写入内容,另一个继续使用cin
尝试获取一些输入。两者都运作良好,我没有丢失数据,除了它不漂亮...有时我正在输入其他线程cout
的东西,这两个东西在一起。 无论如何我可以将它们分开吗?如果现在要做的话我必须打开一个窗口并将cout
流重定向到它,我真的不想这样做。 ..
答案 0 :(得分:0)
确保您逐个接收输入字符。然后,只要你需要输出一些东西,首先移动输出光标,然后使用回车符'\ r'来回显当前行的开头
然后确保输出通过在必要时用空格填充来覆盖当前输入。
最后打印换行符以开始换行并重写当前输入
std::cout << "\r" << output << padding << "\n" << currentinput;