【问题标题】:How can I use cin and cout at same time without interrupt?如何在不中断的情况下同时使用 cin 和 cout?
【发布时间】:2012-03-02 09:16:47
【问题描述】:

我正在编写一个 win32 控制台应用程序,它有两个线程,一个继续使用 cout 向控制台写入内容,另一个继续使用 cin 尝试获取一些输入。两者都运作良好,我没有丢失数据,只是它不漂亮......有时当我输入另一个线程cout 的东西时,这两件事结合在一起。 无论如何我可以让它们分开吗?如果没有办法,我必须打开一个窗口并将cout 流重定向到它,我真的不想这样做......

【问题讨论】:

  • 您可以将cout 重定向到文件吗?
  • 不行,我需要实时显示...
  • 您应该使用库进行终端控制。我可以将您指向 PDCurses pdcurses.sourceforge.net,但我从未使用过它,所以我无法为您提供更多帮助

标签: c++ time cout cin


【解决方案1】:

确保您正在逐个字符地接收输入。然后,每当您需要输出某些内容时,请通过将输出光标移动到当前行的开头并使用回车符 '\r'

然后确保您的输出覆盖当前输入,必要时用空格填充。

最后打印一个换行符以开始新的一行并重写您当前的输入

std::cout << "\r" << output << padding << "\n" << currentinput;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 2013-02-19
    相关资源
    最近更新 更多