Re-bonjour,
En lisant le FAQ de Developpez.com sur les entrées sorties clavier,
j'ai vu l'explication de la fonction fflush suivante :
"Cette fonction sert à forcer l'écriture physique des données se trouvant dans le tampon associé à un flux sortant. Par exemple :
Cependant, la norme ajoute que le tampon associé à un flux sortant doit être également vidé lorsqu'une opération de lecture nécessite l'émission de ces caractères. Dans de nombreuses implémentations, une demande de lecture au clavier provoque le vidage du tampon associé à l'écran. Le 'fflush(stdout);' juste après notre printf serait donc automatiquement appelé au moment du scanf et dans ce cas, on peut tout simplement l'omettre."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include <stdio.h> int main(void) { int n; printf("Entrez un nombre entier : "); /* En langage C, une ligne doit etre terminee par le caractere '\n'. Tant que */ /* la ligne n'est pas terminee et que le tampon associe au fichier n'est pas plein, */ /* les caracteres transmis ne seront pas effectivement ecrits mais tout simplement */ /* places dans le tampon. On peut cependant forcer le vidage de ce tampon a l'aide */ /* de la fonction fflush. */ fflush(stdout); scanf("%d", &n); printf("Merci pour : %d\n", n); return 0; }
Or si moi j'écris la fonction suivante :
J'ai effectivement la phrase qui s'écrit à l'écran (je croyais qu'il fallais qu'il y ai fflush à la suite, pour qu'elle sécrive, ou alors un scanf ?)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #include <stdio.h> int main(void) { printf("Entrez un nombre entier : "); return 0; }
Quelqu'un saurais éclairer ma lanterne ?
Il y a quelque chose que je n'ai pas saisi....
Partager