我可以循环直到`std :: cin`在输入缓冲区中看到`\ n`字符吗?

时间:2019-04-02 06:56:14

标签: c++

这样的事情。

do{
    int x{};
    std::cin >> x;
}while(/*i want the condition mentioned here*/);

我的意思是,如果用户输入x并按 Enter ,我希望循环结束。 我可以这样做吗?

1 个答案:

答案 0 :(得分:4)

最常见的方法是读取整行,然后从该行提取数据。

也就是说,将视角从“阅读所有内容,直到遇到换行符”更改为稍高一点的“阅读该行中的所有内容”。

std::string line;
if (std::getline(std::cin, line))
{
    std::stringstream ls(line);
    int x = 0;
    while (ls >> x)
    {
        // Process x
    }
}