我有一个C ++控制台应用程序,它不断地输出一些输出,同时它还接受来自用户的命令(使用std::cin
) - 输出和输入发生在不同的线程中。
如果我在出现某些输出时写入文本,则书面文本与应用程序输出混合在一起。我该如何防止这种行为?
要解决这个问题,我需要在输入文本的行上显示上面一行的程序。我会在Minecraft Bukkit服务器的解决方案中激励自己 - 但是我对C ++也需要相同的东西。
答案 0 :(得分:0)
假设您希望在输入内容时显示输出,则需要一些屏幕控制工具才能使输出与输入区域不同。如果我的任务是实现类似写入终端的内容,我会刷新ncurses经验。我意识到你在Windows控制台上,我不知道Windows控制台是否能够实现实现它所需的屏幕控制。
您可以使用引擎盖下的curses功能将自定义流缓冲区绑定到std::cin
和std::cout
,但这可能不值得。无论如何,这并非完全无足轻重。
答案 1 :(得分:0)
有一个名为pdcurses的ncurses窗口。但是如果你使用visual studio,那么提供一个名为SetConsoleCursorPosition()
的简单函数