2017-08-02 121 views
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從控制檯讀取並按下

+1

你嘗試['標準:: getline'(http://www.cplusplus.com/reference/string/string/getline/)? – Blacktempel

+1

或者'std :: getline'的['QTextStream'等價物](http://doc.qt.io/qt-5/qtextstream.html#readLine)? –

+2

另外,請不要命名你的流'cin'和'cout'。這會讓你的代碼的讀者和維護者非常困惑! –

回答