std::unitbuf, std::nounitbuf
Da cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Definido no cabeçalho <ios>
|
||
std::ios_base& unitbuf( std::ios_base& str ); |
(1) | |
std::ios_base& nounitbuf( std::ios_base& str ); |
(2) | |
Habilita ou desabilita a lavagem automática do fluxo de saída após qualquer operação de saída. Não tem efeito sobre entrada.
1) Original:
Enables or disables automatic flushing of the output stream after any output operation. Has no effect on input.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
permite a bandeira
2) unitbuf
no str
fluxo, como se chamando str.setf(std::ios_base::unitbuf)Original:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
desabilita a bandeira
unitbuf
no str
fluxo, como se chamando str.unsetf(std::ios_base::unitbuf)Original:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Trata-se de um manipulador de I / O, que pode ser chamada com uma indicação tal como para qualquer out << std::unitbuf
out
de std::basic_ostream tipo ou com uma indicação tal como para qualquer in >> std::unitbuf in
de std::basic_istream tipo.Original:
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.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Índice |
[editar] Notas
A lavagem é realizada no processo de destruição do objeto std::basic_ostream::sentry, que chama str.rdbuf()->pubsync() se str.flags() & std::ios_base::unitbuf == true.
Original:
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.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Os objetos de saída padrão std::cerr e std::wcerr têm seu bit
unitbuf
definido por padrão.Original:
The standard output objects std::cerr and std::wcerr have their
unitbuf
bit set by default.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar] Parâmetros
str | - | referência ao fluxo de E / S
Original: reference to I/O stream The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[editar] Valor de retorno
str
(referência ao fluxo após a manipulação)Original:
str
(reference to the stream after manipulation)The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar] Exemplo
Sem unitbuf std :: ou outro esvaziamento explícito, a saída é o mesmo, mas não aparecem em tempo real .
Original:
Without std::unitbuf or another explicit flush, the output is the same, but does not appear in real time.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#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'; }
Saída:
..(450 ms)....(902 ms)....(1352 ms)....(1802 ms)....(2252 ms)..
[editar] Veja também
libera o fluxo de saída Original: flushes the output stream The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (modelo de função) | |
saídas '\n' e libera o fluxo de saída Original: outputs '\n' and flushes the output stream The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (modelo de função) |