while循环和cin char,int

时间:2015-08-12 22:48:25

标签: c++ arrays while-loop cin

我只想弄明白:

我有以下代码:

#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)。

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

1 个答案:

答案 0 :(得分:0)

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

如果n用2填充,结果总是1和0被打印,无论cin&gt;&gt; S;是否取消注释。