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

Why is my cin getting errors when having 80+ lines of input?

本文关键字:输入 出错 我的 cin 在有 为什么      更新时间:2023-10-16

编辑对不起,我忘记添加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

请帮我解决这个问题。我试了好几个小时,还是不知道。

非常感谢!

David

因为您忘记了递增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.
}