std::basic_ios<CharT,Traits>::tie (3) - Linux Manuals

std::basic_ios<CharT,Traits>::tie: std::basic_ios<CharT,Traits>::tie

NAME

std::basic_ios<CharT,Traits>::tie - std::basic_ios<CharT,Traits>::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


(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"