2015-06-13 3 views
1

Я использую Eclipse для c/C++, я попробовал код для создания pascal's triangle, и когда я запустил его, он не печатает «Введите количество строк:» до тех пор, пока я не введу номер, даже если printf приходит до зсапЕНет приглашения для целого числа

int main(void) { 
int rows, coef = 1, space, i, j; 
printf("Enter number of rows: "); 
scanf("%d", &rows); 
printf("\n"); //i added this 
for (i = 0; i < rows; i++) { 
    for (space = 1; space <= rows - i; space++) 
     printf(" "); 
    for (j = 0; j <= i; j++) { 
     if (j == 0 || i == 0) 
      coef = 1; 
     else 
      coef = coef * (i - j + 1)/j; 
     printf("%4d", coef); 
    } 
    printf("\n"); 
} 
return 0; 
} 

Мой вопрос: есть ли что-то не так с моим затмении для C/C++, потому что я никогда не имел эту проблему на затмении для Java, когда я попросил для ввода, как это. Также как это исправить.

ответ

2

С нашими инструментами ничего не случилось.

printf по умолчанию буферизует свой вывод до тех пор, пока не будет напечатана новая строка \n.

Вы можете обратиться к этому, выполнив fflush(stdout) после printf, который не содержит \n.

Или вы можете отключить буферизацию линии в целом:

setvbuf(stdout, NULL, _IONBF, 0); 
+0

Таким образом, в Java делает это автоматически делать то, что fflush (стандартный вывод) делает, потому что я никогда не имел эту проблему. –

+0

'System.out.print()' не хранится как 'printf'. –

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