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

std::unitbuf, std::nounitbuf

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

 
 
Библиотеки ввода / вывода
I / O манипуляторов
C-стиль I / O
Буферы
Оригинал:
Buffers
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
basic_streambuf
basic_filebuf
basic_stringbuf
strstreambuf(устарело)
Потоки
Оригинал:
Streams
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Абстракций
Оригинал:
Abstractions
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
ios_base
basic_ios
basic_istream
basic_ostream
basic_iostream
Файл I / O
Оригинал:
File I/O
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
basic_ifstream
basic_ofstream
basic_fstream
Струнный I / O
Оригинал:
String I/O
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
basic_istringstream
basic_ostringstream
basic_stringstream
Массив I / O
Оригинал:
Array I/O
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
istrstream(устарело)
ostrstream(устарело)
strstream(устарело)
Типы
Оригинал:
Types
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
streamoff
streamsize
fpos
Интерфейс Ошибка категории
Оригинал:
Error category interface
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
iostream_category(C++11)
io_errc(C++11)
 
Вход / выход манипуляторов
Плавающей точкой форматирования
Оригинал:
Floating-point formatting
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Целое форматирования
Оригинал:
Integer formatting
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Булевы форматирования
Оригинал:
Boolean formatting
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
boolalpha
noboolalpha
Ширина полей и заполнения управления
Оригинал:
Field width and fill control
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Другие форматирования
Оригинал:
Other formatting
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Пробелы обработки
Оригинал:
Whitespace processing
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Выходные промывки
Оригинал:
Output flushing
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
unitbuf
nounitbuf
Состояние флагов манипуляции
Оригинал:
Status flags manipulation
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Время и деньги I / O
Оригинал:
Time and money I/O
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
get_money(C++11)
get_time(C++11)
put_money(C++11)
put_time(C++11)
 
Определено в заголовочном файле <ios>
std::ios_base& unitbuf( std::ios_base& str );
(1)
std::ios_base& nounitbuf( std::ios_base& str );
(2)
Включает или выключает автоматическую промывку выходного потока после любой операции вывода. Не влияет на входе.
Оригинал:
Enables or disables automatic flushing of the output stream after any output operation. Has no effect on input.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
1)
позволяет unitbuf флага в потоке str как при вызове str.setf(std::ios_base::unitbuf)
Оригинал:
enables the unitbuf flag in the stream str as if by calling str.setf(std::ios_base::unitbuf)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
2)
отключает unitbuf флага в потоке str как при вызове str.unsetf(std::ios_base::unitbuf)
Оригинал:
disables the unitbuf flag in the stream str as if by calling str.unsetf(std::ios_base::unitbuf)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Это I / O манипулятора, его можно назвать с выражением таких как out << std::unitbuf для любого типа out std::basic_ostream или выражения, такие как in >> std::unitbuf для любого типа in std::basic_istream.
Оригинал:
This is an I/O manipulator, it may be called with an expression such as out << std::unitbuf for any out of type std::basic_ostream or with an expression such as in >> std::unitbuf for any in of type std::basic_istream.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

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

Промывка осуществляется в деструкторе std::basic_ostream::sentry объект, который вызывает str.rdbuf()->pubsync() если str.flags() & std::ios_base::unitbuf == true.
Оригинал:
Flushing is performed in the destructor of the std::basic_ostream::sentry object, which calls str.rdbuf()->pubsync() if str.flags() & std::ios_base::unitbuf == true.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Стандартные объекты выход std::cerr и std::wcerr их unitbuf бит установлен по умолчанию.
Оригинал:
The standard output objects std::cerr and std::wcerr have their unitbuf bit set by default.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

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

str -
ссылка на поток ввода / вывода
Оригинал:
reference to I/O stream
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

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

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

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

Без STD :: unitbuf или другого явного флеш, на выходе то же самое, но не отображается в режиме реального времени .
Оригинал:
Without std::unitbuf or another explicit flush, the output is the same, but does not appear in real time.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

#include <iostream>
#include <chrono>
template<typename Diff>
void log_progress(Diff d)
{
    std::cout << "..("
              << std::chrono::duration_cast<std::chrono::milliseconds>(d).count()
              << " ms)..";
}
int main()
{
    volatile int sink=0;
    std::cout << std::unitbuf; // enable automatic flushing
 
    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 work
        auto now = std::chrono::high_resolution_clock::now();
        log_progress(now - t1);
    }
    std::cout << '\n';
}

Вывод:

..(450 ms)....(902 ms)....(1352 ms)....(1802 ms)....(2252 ms)..

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

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

(шаблон функции) [edit]
Выходы '\n' и очищает выходной поток
Оригинал:
outputs '\n' and flushes the output stream
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]