std::basic_ostream<CharT,Traits>* tie() const; | (1) | |
std::basic_ostream<CharT,Traits>* tie( std::basic_ostream<CharT,Traits>* str ); | (2) |
Manages the tied stream. A tied stream is an output stream which is synchronized with the sequence controlled by the stream buffer (rdbuf()
), that is, flush()
is called on the tied stream before any input/output operation on *this
.
str
. Returns the tied stream before the operation. If there is no tied stream, a null pointer is returned.str | - | an output stream to set as the tied stream |
The tied stream, or a null pointer if there was no tied stream.
May throw implementation-defined exceptions.
By default, the standard stream cout
is tied to cin
and cerr
. Similarly, its wide counterpart wcout
is tied to wcin
and wcerr
.
#include <iostream> #include <fstream> #include <string> int main() { std::ofstream os("test.txt"); std::ifstream is("test.txt"); std::string value("0"); os << "Hello"; is >> value; std::cout << "Result before tie(): \"" << value << "\"\n"; is.clear(); is.tie(&os); is >> value; std::cout << "Result after tie(): \"" << value << "\"\n"; }
Output:
Result before tie(): "0" Result after tie(): "Hello"
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_ios/tie