console vide lors de l’exécution de programmes c à l’aide de la fonction scanf

Je suis vraiment nouveau en c-language. J’ai le problème suivant.

Si j’utilise scanf (), le programme ne semble pas s’exécuter correctement. J’utilise Eclipse et la fenêtre de la console est vide. MAIS – lorsque je termine le programme c, tout s’affiche dans la fenêtre de la console.

#include #include void main() { int i; char c; char s[10]; float f; printf("Enter an integer number:"); scanf("%d",&i); fflush(stdin); printf("Enter ssortingng:"); scanf("%s",s); fflush(stdin); printf("Enter a floating number:"); scanf("%f",&f); fflush(stdin); printf("Enter a character:"); scanf("%c",&c); printf("\nYou have entered \n\n"); printf("integer:%d \ncharacter:%c \nssortingng:%s \nfloat:%f",i,c,s,f); getch(); } 

Quelle est la raison pour ça?

stdout , qui est écrit dans printf() , est mis en mémoire tampon de sorte qu’il est vidé uniquement lorsqu’un \n rencontré.

Donc, pour que vos invites d’entrée apparaissent, vous devez explicitement vider la sortie stdout :

 printf("Enter an integer number:"); fflush(stdout); scanf("%d", &i); 

À la fin du programme, les mémoires tampons sont implicitement vidées. C’est pourquoi les dernières données de printf() apparaissent sur la console à la fin du programme.


Cependant, à partir de la source que vous publiez, les données doivent être imprimées sur la console après l’exécution de cette ligne:

 printf("\nYou have entered \n\n"); 

Comme il y a \n s. Donc, je suppose que vous ne nous montrez pas le code exact.