当有80多行输入时,为什么我的cin会出错?

时间:2016-09-05 04:57:30

标签: c++ iostream cin

修改 对不起,我忘了添加i ++;然而,这不是问题。问题是 cin在80多行之后停止输入。由于我使用cout来直接查看cin是否成功,我可以跟踪我的cin表现如何。

这是我第一次提出一个严肃的问题......但是这个问题对我来说太奇怪了,我不得不寻求帮助。

所以程序基本上是输入和输出输入的内容。这个过程会重复100次,我不知道为什么,它总是堵塞在89行左右。

以下是该计划:

#include <iostream>

using namespace std;

int main(){
    int i = 0;
    while (i<100){
        long long key;
        cin >> key;
        cout << key<<endl;
        i++;
    }
}

我使用的输入是这样的:

40279559
 774613289
 869592654
 165280355
 776346290
 221187096
 421986249
 83228103
 640319482
 528689193
 75245219
 617070033
 66257759
 25751289
 282482494
 954357244
 477444954
 608389416
 400483980
 477444954
 441393551
 66257759
 822218158
 806479414
 548665149
 66257759
 234121006
 663305907
 314809050
 0
 487458874
 66257759
 918193520
 606474691
 188185089
 322445571
 66257759
 814123984
 0
 0
 689260392
 204276815
 66257759
 488766408
 412617563
 463415495
 601030115
 776513589
 257003372
 154047223
 154047223
 219327735
 978812473
 978817223
 718062555
 128066784
 15718305
 754978417
 643892549
 192401474
 643892549
 638898307
 973173529
 506709268
 506709268
 744166533
 638898307
 9524075
 997348833
 31190791
 21011834
 217208615
 401912531
 0
 251082460
 542593404
 702430665
 48285749
 831077135
 917941607
 908494561
 671239874
 333354822
 261522346
 170201520
 139162050
 677374727
 992422786
 500171144
 239436034
 556867643
 992422786
 720003678
 220110584
 31190791
 898610232
 682670734
 547596765
 496810115
 41728941

请帮我解决这个问题。我已经尝试了很多个小时但仍然不知道。

非常感谢!

大卫

1 个答案:

答案 0 :(得分:1)

由于您忘记增加i。这个程序将陷入无限循环。

int i = 0;
while (i<100){
    // Do something
    i++; // Increment i to get rid of infinite loop.
}

AndyG在评论部分指出。你也可以使用for循环。

for(int i = 0; i < 100; i++) {
    // Do something.
}