std::basic_ios::tie
From cppreference.com
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.
1) Returns the current tied stream. If there is no tied stream, a null pointer is returned.
2) Sets the current tied stream to
str
. Returns the tied stream before the operation. If there is no tied stream, a null pointer is returned.Parameters
str | - | an output stream to set as the tied stream |
Return value
The tied stream, or a null pointer if there was no tied stream.
Exceptions
(none)
Notes
By default, the standard streams cin
and cerr
are tied to cout
. Similarly, their wide counterparts wcin
and wcerr
are tied to wcout
.
Example
Run this code
#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"