Namespaces
Variants

std::basic_ostream<CharT,Traits>:: flush

From cppreference.net
basic_ostream & flush ( ) ;

Escribe los cambios no confirmados a la secuencia de salida subyacente. Se comporta como una UnformattedOutputFunction .

Si rdbuf() es un puntero nulo, el objeto sentry no se construye.

De lo contrario, después de construir y verificar el objeto sentry, llama a rdbuf ( ) - > pubsync ( ) . Si la llamada retorna - 1 , llama a setstate ( badbit ) .

Contenidos

Valor de retorno

* this

Excepciones

Puede lanzar std::ios_base::failure si ( exceptions ( ) & badbit ) ! = 0 .

Ejemplo

#include <chrono>
#include <iostream>
#include <thread>
using namespace std::chrono_literals;
void f()
{
    std::cout << "Output from thread... ";
    for (int i{1}; i != 10; ++i)
    {
        std::this_thread::sleep_for(250ms);
        std::cout << i << ' ';
        // output three numbers at once;
        // the effect is observable only in real-time
        if (0 == (i % 3))
            std::cout.flush();
    }
    std::cout << std::endl; // flushes as well
}
int main()
{
    std::thread tr{f};
    std::this_thread::sleep_for(150ms);
    std::clog << "Output from main\n";
    tr.join();
}

Salida:

Output from main
Output from thread... 1 2 3 4 5 6 7 8 9

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 581 C++98 flush() no se comportaba como una UnformattedOutputFunction
debido a la resolución de LWG issue 60
se comporta como una
UnformattedOutputFunction

Véase también

invoca sync ( )
(función miembro pública de std::basic_streambuf<CharT,Traits> )
[virtual]
sincroniza los búferes con la secuencia de caracteres asociada
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
vacía el flujo de salida
(plantilla de función)
envía ' \n ' y vacía el flujo de salida
(plantilla de función)
sincroniza con el dispositivo de almacenamiento subyacente
(función miembro pública de std::basic_istream<CharT,Traits> )