Namespaces
Variants

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

From cppreference.net
basic_ostream & flush ( ) ;
**Перевод текста на веб-странице:** В соответствии с вашими требованиями, перевожу только текстовое содержимое за пределами HTML-тегов и специальных блоков: - `basic_ostream` - не переводится (C++ термин) - `flush` - не переводится (C++ термин) - `&` - не переводится (HTML-сущность) - `(` и `)` - не переводятся (синтаксис C++) - `;` - не переводится (синтаксис C++) Поскольку весь текст внутри тегов ` ` представляет собой C++ код и специфические термины, переводить нечего. HTML-структура и форматирование полностью сохранены.

Записывает незафиксированные изменения в базовую выходную последовательность. Ведет себя как UnformattedOutputFunction .

Если rdbuf() является нулевым указателем, объект-страж не создается.

В противном случае, после создания и проверки объекта sentry, вызывает rdbuf ( ) - > pubsync ( ) . Если вызов возвращает - 1 , вызывает setstate ( badbit ) .

Содержание

Возвращаемое значение

* this

Исключения

Может выбросить std::ios_base::failure если ( exceptions ( ) & badbit ) ! = 0 .

Пример

#include <chrono>
#include <iostream>
#include <thread>
using namespace std::chrono_literals;
void f()
{
    std::cout << "Вывод из потока... ";
    for (int i{1}; i != 10; ++i)
    {
        std::this_thread::sleep_for(250ms);
        std::cout << i << ' ';
        // вывод трех чисел за раз;
        // эффект наблюдается только в реальном времени
        if (0 == (i % 3))
            std::cout.flush();
    }
    std::cout << std::endl; // также выполняет сброс буфера
}
int main()
{
    std::thread tr{f};
    std::this_thread::sleep_for(150ms);
    std::clog << "Вывод из main\n";
    tr.join();
}

Вывод:

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

Отчёты о дефектах

Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 581 C++98 flush() не вел себя как UnformattedOutputFunction
из-за решения LWG issue 60
ведет себя как
UnformattedOutputFunction

Смотрите также

вызывает sync ( )
(публичная функция-член std::basic_streambuf<CharT,Traits> )
[virtual]
синхронизирует буферы с ассоциированной последовательностью символов
(виртуальная защищенная функция-член std::basic_streambuf<CharT,Traits> )
очищает выходной поток
(шаблон функции)
выводит ' \n ' и очищает выходной поток
(шаблон функции)
синхронизирует с базовым устройством хранения
(публичная функция-член std::basic_istream<CharT,Traits> )