0
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鍵 - 程序停止從控制檯讀取。的Qt從控制檯讀取並按下
你嘗試['標準:: getline'(http://www.cplusplus.com/reference/string/string/getline/)? – Blacktempel
或者'std :: getline'的['QTextStream'等價物](http://doc.qt.io/qt-5/qtextstream.html#readLine)? –
另外,請不要命名你的流'cin'和'cout'。這會讓你的代碼的讀者和維護者非常困惑! –