【问题标题】:send text to the input line console c++将文本发送到输入行控制台 c++
【发布时间】:2018-11-05 18:46:52
【问题描述】:

我需要向控制台输出一个用户可以编辑并按 Enter 的字符串。之后,我可以继续使用字符串。 Windows 平台。 C++ 语言。谢谢。

附言

fgets 函数从流中读取一个字符串。我需要在屏幕上执行 fgets 时已经有可以编辑的文本。

我需要一个类似于 GUI readline 的库,我对 ISQL 执行自动完成功能

我在 WriteConsoleInput 的帮助下完成了所需的操作,感谢您的帮助

【问题讨论】:

  • cin >> str; ?
  • 不清楚的问题。显示一些minimal reproducible example。顺便说一句,正在运行的程序(例如进程)可能甚至没有任何控制台(例如一些 Web 服务器程序,例如 Apache),并且一些 Windows 系统甚至没有任何屏幕(想想数据中心内的计算机)跨度>
  • 您是否考虑编写一些GUI 应用程序(可能使用Qt...)?还是使用readline?或其他一些终端库(例如ncurses ...)
  • fgets 函数从流中读取一个字符串。我需要在屏幕上执行 fgets 时已经有可以编辑的文本。
  • 编辑您的问题以改进它(在它关闭之前),但不要评论它。 fgets 无法做到这一点。您可以考虑使用 GUI 或全屏终端应用程序。而且你的程序在运行时可能没有任何屏幕或控制台,所以你想要什么仍然不清楚(你可能需要一些额外的库,或者潜入WinAPI...)

标签: c++ input stream console


【解决方案1】:

"... 向控制台输出一个用户可以编辑并按 Enter 键的字符串"

这不是标准控制台应该做的,也不是标准 C++ 可以做的。

如果您想破解控制台并编写编辑器,您必须玩所有不同的游戏,这取决于您使用的控制台类型(是 ANSI 吗?我是 CMD 吗?是 XTerm 吗?)。

您可能会使用像-例如-ncurses 这样的库获得更好的结果。

【讨论】:

  • 我在 WriteConsoleInput 的帮助下完成了所需的操作,感谢您的帮助
  • @СеменРоманов:很高兴知道您在 Windows 上!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 2014-09-08
  • 2017-09-24
  • 1970-01-01
相关资源
最近更新 更多