public member function
<ios> <iostream>

std::ios::tie

get (1)
ostream* tie() const;
set (2)
ostream* tie (ostream* tiestr);
获取/设置关联流
第一种形式(1)返回指向已关联的输出流的指针。

第二种形式(2)将对象与 tiestr 关联,并返回调用前已关联流的指针(如果有)。

关联流 是一个输出流对象,它在当前流对象的每次 I/O 操作之前会被 *刷新*。

默认情况下,cincout 关联,wcinwcout 关联。库实现也可能在初始化时关联其他标准流。
默认情况下,标准窄字符流 cincerrcout 关联,它们的宽字符对应流(wcinwcerr)与 wcout 关联。库实现也可能将 clogwclog 关联。

参数

tiestr
一个输出流对象。

返回值

指向调用前已关联的流对象的指针,如果流未关联,则为 *空指针*。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// redefine tied object
#include <iostream>     // std::ostream, std::cout, std::cin
#include <fstream>      // std::ofstream

int main () {
  std::ostream *prevstr;
  std::ofstream ofs;
  ofs.open ("test.txt");

  std::cout << "tie example:\n";

  *std::cin.tie() << "This is inserted into cout";
  prevstr = std::cin.tie (&ofs);
  *std::cin.tie() << "This is inserted into the file";
  std::cin.tie (prevstr);

  ofs.close();

  return 0;
}

输出

tie example:
This is inserted into cout


数据竞争

访问(1)或修改(2)流对象。
并发访问同一个流对象可能导致数据争用。

异常安全

基本保证:如果抛出异常,流处于有效状态。