std::basic_ios::tie(3)

NAME
std::basic_ios::tie - std::basic_ios::tie

Synopsis
   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
   May throw implementation-defined exceptions.

Notes
   By default, the standard stream cout is tied to cin and cerr. Similarly, its wide
   counterpart wcout is tied to wcin and wcerr.

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"