XCode 4 de l'affichage de cout états avec endl
Question
J'ai vraiment bizarre problème avec mon cout consolidés.J'ai seulement essayé avec XCode 4.Par exemple, si j'écris,
cout << "this works" << endl;
cout << "this doesnt";
cout << memorySizeLimit << " blocks of memory available." << endl;
Je vois tous les trois états de sortie en ma console debugger.Cependant, si je change l'ordre,
cout << memorySizeLimit << " blocks of memory available." << endl;
cout << "this works" << endl;
cout << "this doesn't";
Je ne vois que les deux premiers couts.Encore plus étrange, si je change le code,
cout << memorySizeLimit << " blocks of memory available." << endl;
cout << "this works" << endl;
cout << "this doesn't" << endl;
Je vois tous les trois déclarations.
Pourquoi n'aurais-je pas voir que "ce n'est pas" cout déclaration quand j'ai changer de position?
La solution
std::cout
est un flux et, normalement, il est mis en mémoire tampon pour la performance.Si vous imprimez endl
le flux devient vidé (cout << endl
est le même que cout << "\n" << flush
.
Vous pouvez vider le flux manuellement par cout << flush
(ou cout.flush()
).
Ce qui devrait d'impression:
cout << "this doesn't" << flush;