Namespaces
Variants
Views
Actions

std::basic_ios::tie

From cppreference.com
< cpp‎ | io‎ | basic ios
 
 
Input/output library
I/O manipulators
C-style I/O
Buffers
(deprecated in C++98)
Streams
Abstractions
File I/O
String I/O
Array I/O
(deprecated in C++98)
(deprecated in C++98)
(deprecated in C++98)
Synchronized Output
Types
Error category interface
(C++11)
 
 
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.

Contents

[edit] Parameters

str - an output stream to set as the tied stream

[edit] Return value

The tied stream, or a null pointer if there was no tied stream.

[edit] Exceptions

(none)

[edit] Notes

By default, the standard streams cin and cerr are tied to cout. Similarly, their wide counterparts wcin and wcerr are tied to wcout.

[edit] Example

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