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 作为输入工作正常。
我试过在 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 作为输入工作正常。