Я видел cout.rdbuf()
in например here. Это означает, что поток cout
имеет связанный с ним буфер потока, который не является пустым, прежде чем мы его очистим.когда может std :: cout буфер быть непустым?
Но как я могу заглянуть в буфер потока cout для cout до того, как он покраснел? Т.е.
cout << "I want to read this before this get flushed";
cout.UnknownFunction(); //this would save the buffer into a string variable
cout << flush;
Но в нынешнем виде кода, все будут сброшены на экран после первой строки ..
Итак, какой вид конструкции позволяет мне заглянуть внутрь буфера соиЬ?
PS. im работает VC++ 2010 на windows7
Прочтите [ссылку на систему потоков C++ ] (Http://en.cppreference.com/w/cpp/io)? –
Я пробовал и не смог .. Возможно, нужно попробовать еще –
Ответ (теперь удален) Дэвида - способ получить буфер. Однако, если он покраснел, он будет пустым. Вы можете проверить флаги формата ['ios_base'] (http://en.cppreference.com/w/cpp/io/ios_base/fmtflags), чтобы узнать, установлен ли' unitbuf', в этом случае вывод очищается после каждого вывода. –