c++ - 异步控制台输出

标签 c++ winapi logging console

我的应用程序 win32 控制台有问题。

控制台用于向我的应用程序发出命令。但是,它同时用于输出主要来自异步线程的日志消息。当用户尝试写入一些输入并同时打印一条异步日志消息时,这会成为一个问题,从而扰乱用户输入的显示。

我想就如何处理这种情况提出一些建议?

例如,是否可以将控制台的最后一行专用于输入,类似于它在某些游戏的游戏控制台中的外观?

最佳答案

您可以使用 SetConsoleMode禁用输入回显和行编辑模式。然后,只要您的程序准备就绪,您就可以回显输入。请注意,这意味着您将需要手动实现退格之类的操作。并且不要忘记在使用完控制台后将模式重置回来!

关于c++ - 异步控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4899001/

相关文章:

java - Log4j 2 性能 : is single-threaded Console logging faster in Logback than Log4j 2?

c++ - C++中的嵌套继承

c++ - scanf 读取格式化输入

c++ - 为什么我在使用 WS_EX_CONTEXTHELP 时看不到问号?

mysql - 如何处理 "InnoDB: page_cleaner: 1000ms intended loop took 0ms"?

logging - 如何解决特定的循环依赖: DAL & Logging

c++ - 尝试在 Windows PC 上禁用处理器空闲状态(C 状态)

使用 C++ 开发 iPhone 应用程序?

c++ - win32 应用程序不是面向对象的,为什么有这么多指针?

python - 在 Python 中,使用 win32api 没有设置正确的日期