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

标签 c++

像这样的..

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

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

最佳答案

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

也就是从“读东西直到遇到换行符”到稍微高级一点的“读行上的所有东西”的视角变化。

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

关于c++ - 我可以循环直到 `std::cin` 在输入缓冲区中看到 `\n` 字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55468654/

相关文章:

c++ - 在 C++ 头文件中放置 using 指令的位置

c++ - BitShifting,将 3 个 u_int8_t 存储在一个整数中并再次读出

c++ - Windows 服务程序中退出函数的作用

c++ - 绘制 GL_TEXTURE_RECTANGLE 与 GL_TEXTURE_2D

c++ - tcmalloc:静态编译时如何覆盖我的 malloc 调用?

c++ - 理解这个完美的转发示例

c++ - Qt Creator 中的 XAudio2

c++ - 编写仅调试版本的断言函数而忽略副作用

c++ - GDB 没有启动

c++ - 包含 Windows 上可能存在或不存在的 header