2010-01-29 2 views

Répondre

5

La différence est les caractères \ n. Lorsque vous imprimez des caractères, ils sont accumulés dans un tampon qui n'est envoyé au périphérique de sortie que lorsqu'un caractère "fin de ligne" est envoyé.

+0

fonctionne, merci. –

+3

Il ne doit pas nécessairement être en fin de ligne. Sinon, il n'y aurait aucun moyen de produire et de recevoir des entrées sur une seule ligne. –

7

La sortie printf vers stdout est mise en mémoire tampon. Vous voudrez peut-être regarder fflush

+0

Je pensais quelque chose dans ce sens (ie 'printf' est tamponné). Je ne suis au C que depuis une semaine maintenant. –

0

essayez d'utiliser fflush(stdout) avant votre if condition.

+2

ne voudrais-je pas cela après mon si condition? 'man fflush' dit que' fflush() 'force une écriture sur tout flux de sortie donné en argument. –

+0

pour obtenir la sortie exacte, mieux serait place fflush à la fois avant et après si condition, sinon les données existantes précédentes de la mémoire tampon peuvent également être imprimés. –

+1

il va être imprimé de toute façon. 'fflush()' avant que 'if' ne fasse magiquement disparaître les données non imprimées précédentes! –

Questions connexes