Пространства имён
Варианты
Действия

std::flush

Материал из cppreference.com
< cpp‎ | io‎ | manip

 
 
Библиотека ввода/вывода
Манипуляторы ввода/вывода
Функции print(C++23)
Ввод/вывод в стиле C
Буферы
(устарело в C++98)
Потоки
Абстракции
Файловый ввод/вывод
Ввод/вывод строк
Ввод/вывод массивов
(устарело в C++98)
(устарело в C++98)
(устарело в C++98)
Синхронизированный вывод
Типы
Интерфейс категорий ошибок
(C++11)
 
Манипуляторы ввода/вывода
Форматирование чисел с плавающей точкой
Целочисленное форматирование
Булево форматирование
Контроль ширины поля и заполнения
Другое форматирование
Обработка пробелов
Сброс вывода
flush
(C++20)

Манипуляции с флагами состояния
Ввод/вывод времени и денежных едениц
(C++11)
(C++11)
(C++11)
(C++11)
Манипулятор заключения в кавычки
(C++14)
 
Определено в заголовочном файле <ostream>
template<class CharT, class Traits >
std::basic_ostream<charT,traits>& flush(std::basic_ostream<CharT, Traits>& os );
Очищает выходной последовательности os как при вызове os.flush().
Оригинал:
Flushes the output sequence os as if by calling os.flush().
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Это выход только для I / O манипулятора, его можно назвать с выражением таких как out << std::flush для любого типа outstd::basic_ostream.
Оригинал:
This is an output-only I/O manipulator, it may be called with an expression such as out << std::flush for any out of type std::basic_ostream.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править]Заметки

Этот манипулятор может быть использован для получения неполной строке вывода сразу, например, При отображении выход из длительный процесс, регистрации деятельности нескольких потоков или регистрации активности программ, которая может неожиданно завершиться. Явное краска std::cout также необходимо до вызова std::system, если порожденный процесс выполняет любой экран I / O (распространенным примером является std::system("pause") на Windows). В большинстве других обычных интерактивного ввода / вывода сценария, std::endl является избыточным при использовании std::cout потому что любой вклад std::cin, вывод на std::cerr, или завершение программы заставляет вызов std::cout.flush().
Оригинал:
This manipulator may be used to produce an incomplete line of output immediately, e.g. when displaying output from a long-running process, logging activity of multiple threads or logging activity of a program that may crash unexpectedly. An explicit flush of std::cout is also necessary before a call to std::system, if the spawned process performs any screen I/O (a common example is std::system("pause") on Windows). In most other usual interactive I/O scenarios, std::endl is redundant when used with std::cout because any input from std::cin, output to std::cerr, or program termination forces a call to std::cout.flush().
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
При полной линейки продукции должна быть промыта, std::endl манипулятор может быть использован.
Оригинал:
When a complete line of output needs to be flushed, the std::endl manipulator may be used.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
При каждом выходе операция должна быть промыта, std::unitbuf манипулятор может быть использован.
Оригинал:
When every output operation needs to be flushed, the std::unitbuf manipulator may be used.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править]Параметры

os
ссылка на исходящий поток
Оригинал:
reference to output stream
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править]Возвращаемое значение

os (ссылка на поток после манипуляций)
Оригинал:
os (reference to the stream after manipulation)
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править]Пример

Без STD :: флеш, результат будет тот же, но может не отображаться в режиме реального времени .
Оригинал:
Without std::flush, the output would be the same, but may not appear in real time.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

#include <iostream>#include <chrono>template<typename Diff>void log_progress(Diff d){std::cout<<"..("<<std::chrono::duration_cast<std::chrono::milliseconds>(d).count()<<" ms).."<< std::flush;}int main(){volatileint sink=0;   auto t1 =std::chrono::high_resolution_clock::now();for(int j=0; j<5;++j){for(int n=0; n<10000;++n)for(int m=0; m<20000;++m) sink += m*n;// do some workauto now =std::chrono::high_resolution_clock::now(); log_progress(now - t1);}std::cout<<'\n';}

Вывод:

..(450 ms)....(901 ms)....(1350 ms)....(1800 ms)....(2250 ms)..

[править]См. также

контролирует, очищается ли вывод после каждой операции
(функция)[править]
выводит '\n' и очищает выходной поток
(шаблон функции)[править]
синхронизируется с основным устройством хранения
Оригинал:
synchronizes with the underlying storage device
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public функция-элемент std::basic_ostream)[править]
close