【问题标题】:No prompt for an integer [duplicate]没有提示输入整数[重复]
【发布时间】:2015-08-29 05:44:29
【问题描述】:

我正在使用 Eclipse for 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++ eclipse 是否有问题,因为当我要求这样的输入时,我在 java 的 eclipse 上从来没有遇到过这个问题。还有我该如何解决这个问题。

【问题讨论】:

    标签: c eclipse


    【解决方案1】:

    你的工具没有问题。

    printf 默认缓冲其输出,直到要打印换行符\n

    您可以通过在不包含\nprintf 之后执行fflush(stdout) 来解决此问题。

    或者您可以完全关闭线路缓冲:

    setvbuf(stdout, NULL, _IONBF, 0);
    

    【讨论】:

    • 所以在 java 中它会自动执行 fflush(stdout) 所做的事情,因为我从来没有遇到过这个问题。
    • System.out.print() 不像printf 那样缓冲。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2019-03-20
    • 2016-09-26
    相关资源
    最近更新 更多