While 循环和 cin char, int

While loop and cin char, int

我只是想弄清楚这个:

我有以下代码:

#include <iostream>
using namespace std;

int main() {
  int n, x = 0;
  cin >> n;
  char s[3];

  while (n-- > 0) {
    cout << n << endl;
    // cin >> s;
  }

  return 0;
}

如果我用 2 填充 n,一切正常(10 得到打印),但如果我取消注释 cin >> s; 行,只有第一次迭代(1) 将被执行(并且输入被保存到 s)。

现在我的问题是:为什么这样工作?我该如何解决? 提前致谢。

除了无用的变量声明x,我认为你的代码没有任何问题。

如果 n 填充为 2,则结果始终为 1 并打印 0,无论 cin >> s;是否取消注释。