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?

Était-ce utile?

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;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top