Xcode 4 Visualizza solo istruzioni cout con endl
Domanda
Ho un problema davvero strano con le mie dichiarazioni Cout. L'ho provato solo con Xcode 4. Ad esempio, se scrivo,
cout << "this works" << endl;
cout << "this doesnt";
cout << memorySizeLimit << " blocks of memory available." << endl;
Vedo tutte e tre le dichiarazioni di output nella mia console di debugger. Tuttavia, se cambio l'ordine in,
cout << memorySizeLimit << " blocks of memory available." << endl;
cout << "this works" << endl;
cout << "this doesn't";
Vedo solo le prime due cout. Ancora più strano, se cambio il codice in,
cout << memorySizeLimit << " blocks of memory available." << endl;
cout << "this works" << endl;
cout << "this doesn't" << endl;
Vedo tutte e tre le dichiarazioni.
Perché non dovrei vedere che "questa non" ha dichiarato di cambiare posizione?
Soluzione
std::cout
è un flusso e normalmente è tamponato per le prestazioni. Se si stampi endl
Il flusso viene arrossato (cout << endl
equivale a cout << "\n" << flush
.
È possibile scaricare manualmente il flusso cout << flush
(o cout.flush()
).
Quindi dovrebbe stampare:
cout << "this doesn't" << flush;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow