c++ - 具有非阻塞输入的编辑行

标签 c++ editline

我在我的程序中使用 editline 库,用于在 shell 中输入用户命令。但是除了 shell,程序有一个 gui 界面,所以我需要在单独的线程中运行 editline 的 readline() 函数,因为它会阻塞直到按下 Enter。有没有一种方法可以在不阻塞的情况下使用 readline() 函数,这样我就可以避免使用单独的线程?

最佳答案

为什么不让 GUI 线程在不同的线程中运行,而将控制台输入留在主线程中。从命令行读取后,您可以将事件推送到 GUI 线程。在我看来,这要简单得多。

如果您的 GUI 允许您在与主线程不同的线程中运行它,那么这当然有效。

后期编辑:您不能只创建一个文本控件/窗口并从那里获取输入吗?一旦你按下 Enter,它就会清除输入——就像在控制台输入信息一样?我相信在 GUI 中拥有一切要简单得多

关于c++ - 具有非阻塞输入的编辑行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3036839/

相关文章:

C++ "Named Parameter Idiom"与 Boost::Parameter 库

GTK 可以与类似 readline 的库一起使用吗?

c - fatal error : editline/readline. h:没有这样的文件或目录编译终止

c++ - PID Controller ,用于以速度行进精确的距离

c++ - 如何从 C++ 中的依赖类型获取它所依赖的类型

c++ - 从 vector 中删除元素时出现未处理的异常

c++ - 如何在 C++ 中使用内联函数进行内联汇编?