c++ - 输入命令的控制台

标签 c++ debugging input console

我想为我的应用程序制作一些调试控制台。它应该输出一些数据并接受输入命令。我怎样才能做到这一点?最好的方法是更新控制台,如:绘制信息并在数据后提示输入。 我在 Linux 下开发。例如,gdb 可以从控制台获取输入。

最佳答案

如果您熟悉套接字编程(或者实际上,任何其他类型的 IPC 机制),您可能希望在您的应用程序中启用一些监听器,并开发一个将为您执行所有“控制台”操作的外部应用程序,同时与主应用程序通信。

假设您有一个应用程序,它只有一个按钮和一个文本标签,每次您按下该按钮时,文本标签都会增加 1,从 1 到 2 再到 3,依此类推。

您可以在该应用程序中构建套接字监听器。当套接字监听器接受新的传入连接时,您将启动一个连接线程,该线程可以:

  1. 收到“关机”指令
  2. 接收“重置计数器”命令
  3. 发送有关每次点击的当前计数的更新
  4. 等等

然后您构建另一个外部应用程序,它连接到主应用程序,并根据从用户那里获得的控制台输入向它发送消息。它还会收听传入的更新并将它们显示给用户。

使用外部应用程序调试控制您的主应用程序非常有帮助,以下是一些优点:

  1. 无论调试应用程序有多么错误,都不会影响主应用程序的发布版本。
  2. 所有处理控制台管理的代码(对您的主应用程序而言是多余的)都可以保留在主应用程序之外。
  3. 从中制作两个项目可以更轻松地与其他人协作您的工作,只要你们都知道双方之间的协议(protocol)。
  4. 实现我的建议意味着您可以远程调试您的应用程序,以防您无法访问主应用程序(例如,如果它位于客户站点上)。

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

相关文章:

c++ - 用 const 复制相同的方法?

c++ - 为什么 setspacing 属性不起作用?

java - 无断点测试

javascript - 键盘输入暂停

输入文本的CSS输入字段文本颜色

jquery - <input type ="password"...> jQuery 样式

c++ - 简单问题:为什么字符串库函数std::string::find总是返回std::string::npos?

c++ - 为什么下面的两个代码片段从指针的角度在 C++ 中给出了不同的答案

c++ - 是否存在 valgrind 不会报告现有泄漏/错误的情况

javascript - Google Chrome 调用 JS 脚本控制台?