0
votes

printf () ne s'affiche pas en premier

Mon code:

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


0 commentaires

3 Réponses :


4
votes

Vous pouvez utiliser fflush () après printf () : Son but est d'effacer (ou de rincer) le tampon de sortie et de déplacer les données tamponnées à la console (en cas de stdout ) ou de disque (en cas de flux de sortie de fichier).


1 commentaires

Puis-je avoir un exemple, puisque j'ai essayé et ça ne marche toujours pas. Je veux voir si je l'ai bien corrigé



2
votes

Lorsque vous utilisez des fonctions imprimées sur stdout comme printf , sur certains systèmes, vous devrez peut-être "affleurer" le tampon afin de rendre les éléments apparaissent à l'écran. < / p>

Ceci est typiquement fait en ajoutant un \ n à la fin de chaque printf , mais vous pouvez également le faire explicitement avec un appel à fflush (stdout ) .


1 commentaires

\ n dans ce cas n'est pas bon car il souhaite avoir du curseur juste après l'invite



2
votes

printf est tamponné pour que vous puissiez la rincer avant le scanaf


0 commentaires