1

I'm using Eclipse for c/c++ i tried out code for making pascal's triangle and when i run it doesn't print "Enter number of rows: " until after i enter the number even though the printf comes before the scanf

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;
}

My question is whether there is something wrong with my eclipse for c/c++ because i never had this problem on eclipse for java when i asked for input like this. Also how do i fix this.

Sami Kuhmonen
  • 30,146
  • 9
  • 61
  • 74
Juan Solis
  • 11
  • 4

1 Answers1

2

Nothing is wrong with your tools.

printf by default buffers its output until a newline \n is to be printed.

You can address this by doing a fflush(stdout) after a printf that does not contain \n.

Or you can turn off line buffering altogether:

setvbuf(stdout, NULL, _IONBF, 0);
Craig S. Anderson
  • 6,966
  • 4
  • 33
  • 46