2016-09-05 8 views
-2

EDIT Извините, что забыл добавить i ++; Однако это не проблема. Проблема заключалась в том, что cin stop получает вход после 80 + линий. Поскольку я использовал cout, чтобы напрямую видеть, успешно ли cin, я мог бы отслеживать, как работает мой cin.Почему мой cin получает ошибки при наличии 80 строк ввода?

Это мой первый вопрос с серьезным вопросом ... Однако эта проблема настолько странная для меня, и я должен обратиться за помощью.

Таким образом, программа в основном получает ввод и вывод того, что было введено. Этот процесс повторяется 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 

Пожалуйста, помогите мне для этой проблемы. Я пробовал много часов и до сих пор не знаю.

спасибо!

Дэвид

+0

Необходимо ввести фактический код, создающий ошибку. Ваши данные повреждены? – Galik

+0

Это фактический код. Я открываю новый файл, чтобы проверить эту часть, и эта проблема все еще существует. Я думаю, что входные данные должны быть точными. –

+0

Я пробовал свой код в Visual Studio с вашими данными примера, и он отлично работал. Возможно, ваш файл данных имеет в нем маркер EOF. Можете ли вы попробовать его с другим файлом (просто вырезать и вставить с этой страницы). –

ответ

1

Поскольку вы забыли увеличивает i. Эта программа попадет в бесконечный цикл.

Как указано AndyG в разделе комментариев. Вы также можете использовать для цикла.

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

Или, может быть, использовать цикл for – AndyG

+0

Это не решало мой вопрос. Моя проблема заключалась в том, что мой cin перестает получать данные из ввода после работы с 80 + линиями. Я не знаю, почему это –

+0

Вы пробовали меньше строк? Однажды у меня возникла проблема, когда мой «cin» не смог получить более 100 символов. – SnuKies