Cin/Scanf 在 For 循环中

Cin/Scanf in For loop

我试过在 for 循环中使用 cin,因此

int main() {
  int var1, var2, var3;
  for (int i = 0; i < 10; i++) {
    std::cin >> var1 >> var2 >> var3;
    // printf("hi\n"); 
  }
}

当我 运行 代码时,它只到达 cin 一次,然后 cin 不再被调用。

输入应为10行,每行3个整数,如

1 2 3
4 5 6
7 8 9
...

等等

如果我取消注释 printf("hi\n");,它将打印 hi 10 次。为什么会这样,如何在 for 循环中正确使用 cin。我试过使用 scanf 但遇到了同样的问题。

谢谢!

谢谢大家的帮助,找到原因了。 Andreas Wenzel 和 anastaciu 描述了原因,即输入不是整数。我没有为var1输入一个int,而是输入了一个char,但是完整的代码如图所示

int main() {
int var1; int var2; int var3;
for(int i = 0; i < 3; i++) {
 std::cin >> var1 >> var2 >> var3;
} 
return 0;
}

一个会导致错误的示例输入(仍然不确定这个具体错误是什么),会导致这个输出

H 2 3
hi
hi
hi

但是使用所有 int 作为输入工作正常。