printf()在做while循环之前不工作

printf() not working before do while loop

我试过运行这段代码:

printf("Enter a character.");
printf("\n");

do {
    ch = getch();
    system("cls");
    putchar(ch);
} while(ch != '.');

以上代码在 Codeblocks 上运行良好,但在 Eclipse IDE 上运行不正常。事实上,do while 循环之前的 printf 语句不起作用,但如果我禁用 do while 语句,则 printf 语句在 eclipse 上工作正常。您能解释一下为什么会这样吗?

也许试试这个?

printf("Enter a character.\n");
fflush(stdout);

do {
    ch = getch();
    system("cls");
    putchar(ch);
} while(ch != '.');

我认为这是因为你的输出缓冲区 (printf) 没有刷新。