2010-10-12 2 views
2

У меня возникла эта странная проблема. Мой код прост:C++ Для циклов цикла всего 299 раз

#include <iostream> 
using namespace std; 

int main() { 
    int num; 
    cout << "number: "; 
    cin >> num; 

    for (int i=0;num>i;i++) { 
     cout << i <<"\n";  
    } 

system ("Pause"); 
return 0;  
} 

Если входной сигнал, например, 1000, вывод содержит цифры от 701-999. Любая идея?

Я использую Dev-C++ IDE на Parallels.

+0

Возможно, результат потерян в окне команд? Запустите эту программу с выходом, перенаправленным в файл, или увеличьте историю окон команд. –

+3

Используйте \ t или пробел вместо \ n, все будет видно. – DumbCoder

+0

звучит так, будто вы используете cygwin. Измените размер буферов на 9999 (или максимальный 99999) –

ответ

20

Фактически он печатает все из них от 0 до 999, но буфер вашей консоли недостаточно велик. Таким образом, вы видите только последнюю часть. если вы напечатаете файл, а не консоль, вы увидите:

10

Петля заканчивается, когда num>i больше не верна. Это происходит, когда i равно 1000, поэтому последний выполненный цикл будет иметь значение 999. Что касается того, что вы не видите ниже 701, возможно, ваш экранный буфер слишком мал.

+3

Запахи Windows: 300 строк - максимальный максимум вертикальных линий cmd.exe. – Dummy00001

3

Произошло 0-700 с экрана? Запустите свой exe следующим образом

your_program > out.txt 

Затем посмотрите на out.txt в редакторе.

1

Что касается @JoshD ответа, Вам нужно будет:

for (int i=0;num>=i;i++) { 
    cout << i <<"\n";  
} 
5

Он начнет с 0-999. Кроме того, вам кажется, что он начинается с 701 из-за настроек вашего экрана в консоли. Если вы хотите это увидеть самостоятельно, замените новую линию на следующее:

cout << i <<" "; 
2

Работает абсолютно нормально для меня. Я бы предложил, чтобы ваша IDE могла играть трюки с вами. Не могли бы вы перенаправить вывод в файл и проверить это?

Смежные вопросы