2015-04-01 164 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等。一旦你选择了一个,你应该向用户传达这个信息,并且你必须构建你的循环来检测这些情况并退出。