首页 > 解决方案 > 我可以循环直到 `std::cin` 看到输入缓冲区中的 `\n` 字符吗?

问题描述

像这样的东西。。

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

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

标签: c++

解决方案


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

也就是从“读东西直到遇到换行符”转变为稍微高级一点的“读行中的所有东西”。

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

推荐阅读