std :: cin的输入无效

时间:2015-04-01 00:49:16

标签: c++ while-loop 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的无效输入?

1 个答案:

答案 0 :(得分:0)

通常情况下,这样的循环会被文件末尾停止,而不是无效的输入。

在* nix环境中,您通常可以使用 CTRL + d 将文件结尾发送到终端,并在Windows控制台上 CTRL < / KBD> + ž

请参阅https://stackoverflow.com/a/16136924/1084944

但是,您可以实施自己的其他方式来表示输入结束。例如,让用户在完成后输入空白行,或单词quit等。一旦你选择了一个,你应该将它传达给用户,你必须构建你的循环,以便能够检测这些条件并退出。