防止混合控制台输出和书面文本

时间:2013-10-06 13:25:41

标签: c++ stdout

我有一个C ++控制台应用程序,它不断地输出一些输出,同时它还接受来自用户的命令(使用std::cin) - 输出和输入发生在不同的线程中。
如果我在出现某些输出时写入文本,则书面文本与应用程序输出混合在一起。我该如何防止这种行为? The console

要解决这个问题,我需要在输入文本的行上显示上面一行的程序。我会在Minecraft Bukkit服务器的解决方案中激励自己 - 但是我对C ++也需要相同的东西。

desired behaviour

2 个答案:

答案 0 :(得分:0)

假设您希望在输入内容时显示输出,则需要一些屏幕控制工具才能使输出与输入区域不同。如果我的任务是实现类似写入终端的内容,我会刷新ncurses经验。我意识到你在Windows控制台上,我不知道Windows控制台是否能够实现实现它所需的屏幕控制。

您可以使用引擎盖下的curses功能将自定义流缓冲区绑定到std::cinstd::cout,但这可能不值得。无论如何,这并非完全无足轻重。

答案 1 :(得分:0)

有一个名为pdcurses的ncurses窗口。但是如果你使用visual studio,那么提供一个名为SetConsoleCursorPosition()

的简单函数