为什么使用 cin 作为循环条件

Why is cin used as a loop condition?

本文关键字:循环 条件 cin 为什么      更新时间:2023-10-16

在我的 c++ 书中,有这样一个循环:

vector<double> temps; // temperatures
for (double temp; cin>>temp; ) // read and put into temps
    temps.push_back(temp);

这似乎永远循环。我无法阻止这个循环。这样做的目的是什么?

operator>>将返回流(cin),该流本身可以转换为表示流是否仍然有效的bool。这将循环,直到某些东西导致cin的读取失败(文件结尾,字母而不是数字等)。

类似于:

 int num;
  while(cin.good())  //could also use while(cin)
  {
      cin >> num;
      cout << num << endl;
  }

您连续阅读数字并打印它的地方。输入非数字会导致输入流失败,因此 cin.good() 变为假。(流不再好了)