Qt从控制台读取并在Enter按下时停止

时间:2017-08-02 12:20:25

标签: 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键。 但是,如果您不想输入任何文字,并且想要将路径字符串留空,则此代码不会接近:它没有&#39 ; t识别Enter为行/新行的结尾,因此如果您尝试按Enter键而不写任何文本,则光标将仅切换到下一行,程序仍会等到您写入内容。

那么,如果 path 字符串为空,有没有办法识别Enter键 NO MATTER ?简单:按Enter键 - 程序停止从控制台读取。

1 个答案:

答案 0 :(得分:0)

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

相反,您也可以使用std::getline以及普通std::cinstd::cout