C printf()不会首先显示

C printf()不会首先显示,c,printf,C,Printf,我的代码: #include <stdio.h> #define SPITZE 1 #define GUT 2 #define BEFRIEDIGEND 3 #define AUSREICHEND 4 #define DURCHGEFALLEN 5 #define JA 1 #define NEIN 0 int main (void) { unsigned int

我的代码:

#include <stdio.h>

#define SPITZE          1
#define GUT             2
#define BEFRIEDIGEND    3
#define AUSREICHEND     4
#define DURCHGEFALLEN   5
#define JA              1
#define NEIN            0

int main (void)
{

    unsigned int note, bestanden;

    printf ("\nGeben Sie bitte eine Note (1-5) ein: ");
    scanf ("%u", &note);

    if (note == SPITZE)
        bestanden = JA;
    else if (note == GUT)
        bestanden = JA;
    else if (note == BEFRIEDIGEND)
        bestanden = JA;
    else if (note == AUSREICHEND)
        bestanden = JA;
    else
        bestanden = NEIN;

    bestanden ? printf ("\nOK!,") : printf( "\nNICHT bestanden");
    return 0;
}
因此,控制台甚至不打印文本first printf\n ben Sie bite eine Note 1-5 ein:。文本不会显示,直到我输入一个数字,然后它直接打印出printf&结果

如何让它打印该行以查看它?

您可以在打印后使用fflush:
其目的是清除或刷新输出缓冲区,并将缓冲数据移动到控制台(如果是stdout)或磁盘(如果是文件输出流)

当使用打印到标准输出的函数(如printf)时,在某些系统上,您可能需要刷新缓冲区以使项目显示在屏幕上


这通常是通过在每个printf的末尾添加一个\n来完成的,但是您也可以通过调用fflushstdout来显式完成。

printf是缓冲的,所以您应该在scanf之前刷新它。

\n在这种情况下,他不太好,因为他希望光标刚好经过提示。我可以举个例子,因为我尝试了它,但仍然不起作用。我想看看我是否答对了