我正在使用Eclipse进行c / c ++我试用了代码来制作pascal's triangle当我运行它时不打印“输入行数:”直到我输入数字后,即使printf来了在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;
}
我的问题是我的eclipse对于c / c ++是否有问题,因为当我要求输入这样的输入时,我从未在eclipse上遇到过这个问题。另外我如何解决这个问题。
答案 0 :(得分:2)
您的工具没有任何问题。
默认情况下, printf
会缓冲其输出,直到打印换行符\n
为止。
您可以在不包含fflush(stdout)
的{{1}}之后执行printf
来解决此问题。
或者你可以完全关闭线路缓冲:
\n