c++ - Qt从控制台读取并按Enter停止

标签 c++ qt text input console

QTextStream cin(stdin);
QTextStream cout(stdout);

QString path;

cout << "Set directory to save configuration file: ";
cout.flush();
// path = cin.readLine();
cin >> path;

这是代码。需要在控制台中输入一些文本时,它可以正常工作。它会打印消息,然后等待直到您输入一些文本,然后按Enter键。 但是,如果您不想输入任何文本,并且希望将路径字符串留空,则此代码不会执行:它不会将Enter识别为行/换行的结尾,因此如果尝试按Enter键而不写任何文本,光标将仅切换到下一行,并且程序仍将等待直到您编写一些内容。

因此,如果路径字符串为空,有什么方法可以识别Enter键 NO MATTER ?简单:按Enter键-程序停止从控制台读取。

最佳答案

对于QT,您可以使用 QTextStream::readLine

相反,您也可以将 std::getline 与普通的std::cinstd::cout一起使用。

关于c++ - Qt从控制台读取并按Enter停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45460731/

相关文章:

c++ - 未处理的异常,传递对象?

c++ - QLabel 自动缩放

regex - 使用 Notepad++ 和正则表达式从文本中提取电子邮件

c++ - 有unique_from_this()吗?或者如何从继承自 enable_shared_from_this 的类返回 unique_ptr

c++ - 通过 msi.dll 一次更改 MSI 表中列中的所有值

c++ - 在 Qt 中设计具有自动缩放字体大小的用户界面

Qt Translation 返回相同的字符串而不是翻译

javascript - 在 Javascript 中将 XMLHttpRequest 转换为字符串

bash - 将许多 .gz 文件中的特定列粘贴在一起

c++ - 在中间插入一个元素到 vector 中