c++ - 不退出以 cin 为条件的 while 循环 c++

标签 c++ while-loop cin infinite

我知道这是一个常见问题,但如果不使用 vector 和 ctrl + d/c,我找不到任何解决这个问题的方法。我在使用 cin 获取未知数量的整数时遇到了无限循环。即使在按下输入后,while 循环也不会停止执行。非常感谢!

while(cin >> num)
{
    num--;
    sizeB = 0;
    setB[sizeB] = num;
    sizeB++;
}
cin.ignore();
cin.clear();

最佳答案

可以使用 getline 函数逐行获取数据,然后通过字符串流读取值:

#include <iostream>
#include <stdio.h>
#include <sstream>

using namespace std;

int main() {
  string line;
  while(getline(cin, line)) {
    stringstream str_stream(line);
    int num;
    while(str_stream >> num) {
      cout << "..." << num << "..." << endl;
    }
    cout << "----" << endl;
  }
}

关于c++ - 不退出以 cin 为条件的 while 循环 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24803130/

相关文章:

c++ - 如何在旋转时渲染 AABB

java - 将数据库列添加到 JComboBox

Java while 循环不限制范围?

c++ - 从 ifstream 读取 stdin/cin 是否安全?

c++ - 输入无效时函数陷入无限循环

c++ - 使用 crontab 运行 c++ 程序, "cin"不等待我的输入

c++ - 基类中使用 this 指针的模板函数

c++ - 使用引用不会导致有关未定义行为的警告

c++ - 在 C++ 中调用链表函数

python - 尝试使用 bool 开关设置嵌套 while 循环