Salut,

Envoyé par
dingua
autre chose :
quand je fais
out << "\n" ;
ece que le out va faire le retour a la ligne ou bien le seul moyen de retourner a la ligne est
out << " " << endl ;
?
En fait, std::endl va faire un peu plus qu'un simple retour à la ligne...
En effet, le caractère de retour à la ligne est bel et bien '\n', mais cout est ce que l'on appelle une "sortie bufferisée".
C'est à dire, que le contenu de l'affichage est mis dans un buffer qui sera envoyé plus ou moins "d'une seule traite" vers la sortie standard.
Pour forcer la "mise à jour" du périphérique de sortie, l'une des solutions est de provoquer un "flush" du buffer.
std::endl provoque ce "flush" et donc le code
std::cout<<"machin"<<std::endl;
correspond donc en quelque sorte à
1 2 3
| std::cout <<"machin" // met "machin" dans le buffer
<<'\n', // retour à la ligne
std::cout.flush(); // effectue le flush du buffer |
NOTA (@ tous les puristes qui s'appretent à me pendre haut et court):Cette explication n'a pour vocation ni d'être complête ni tout à fait correcte.
Elle n'est là que dans sa version extrêmement simplifiée afin de permettre de comprendre le principe
Partager