【问题标题】:Invalid input for std::cinstd::cin 的输入无效
【发布时间】:2015-04-01 00:49:15
【问题描述】:

以下代码旨在连接用户输入的单词。

#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 的无效输入?

【问题讨论】:

  • 在条件语句中使用'break'来退出while循环。条件可以是读取的最大单词数或遇到的特定单词。

标签: c++ while-loop cin


【解决方案1】:

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

在 *nix 环境中,您通常可以使用 CTRL+d 将文件结尾发送到终端,而在 Windows 控制台中,CTRL+z.

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-31
    • 2021-02-26
    相关资源
    最近更新 更多