2015-04-01 109 views
0

以下代碼旨在連接用戶輸入的單詞。std :: cin的輸入無效

#include <iostream> 
#include <string> 


int main() { 
    // insert code here... 

    std::string s; 
    std::string concString; 
    while (std::cin >> s) 
    { 
     concString = concString + s; 
    } 
    std::cout << concString << std::endl; 
    return 0; 
} 

我被卡在這while循環執行期間,因爲我無法打印連接的字符串。我如何退出這個循環?什麼是std :: cin的無效輸入?

+0

在條件語句中使用'break'來擺脫while循環。條件可以是從讀取的最大字數或遇到的特定字中的任何值。 – shark1608 2015-04-01 01:04:34

回答

0

通常,像這樣的循環被文件末尾停止,而不是無效輸入。

在* nix的環境中,你通常可以發送文件的一端連接到終端與CTRL +d,並在Windows控制檯,CTRL +ž

https://stackoverflow.com/a/16136924/1084944

你可以,但是,實現自己的另一種方式來表示輸入的結束。例如,讓用戶在完成時輸入一個空行或單詞quit等。一旦你選擇了一個,你應該向用戶傳達這個信息,並且你必須構建你的循環來檢測這些情況並退出。