sirve significado que para c++ cout flush

significado - c++ force std:: cout flush(imprimir en pantalla)



std cin (2)

Tengo un código como el siguiente:

std::cout << "Beginning computations..."; // output 1 computations(); std::cout << " done!/n"; // output 2

El problema, sin embargo, es que a menudo la salida # 1 y la salida # 2 aparecen (virtualmente) simultáneamente. Es decir, a menudo la salida # 1 no se imprime en la pantalla hasta después de que devuelve computations() . Dado que todo el propósito de la salida # 1 es indicar que algo está sucediendo en segundo plano (y, por lo tanto, fomentar la paciencia del usuario), este problema no es bueno.

¿Hay alguna forma de forzar que el búfer std::cout se imprima antes de la llamada de computations() ? Alternativamente, ¿hay alguna otra forma (usando algo que no sea std::cout ) para imprimir en una salida estándar que solucione este problema?


Además de la respuesta de Joseph Mansfield, std::endl hace la descarga también (además de una nueva línea).

Inserta un carácter de final en la secuencia de salida os y lo vacía como si llamara a os.put (os.widen (''/ n'')) seguido de os.flush ().


Sólo inserte std::flush :

std::cout << "Beginning computations..." << std::flush;

También tenga en cuenta que la inserción de std::endl también se std::endl después de escribir una nueva línea.