C++ IOS 库 - 领带


描述

它用于获取/设置绑定流。

C++98

默认情况下,cin 与 cout 绑定,wcin 与 wcout 绑定。库实现可能会在初始化时绑定其他标准流。

C++11

默认情况下,标准窄流 cin 和 cerr 与 cout 绑定,而它们的宽字符对应项(wcin 和 wcerr)与 wcout 绑定。库实现也可能将 clog 和 wclog 联系起来。

宣言

以下是 ios::tie 函数的声明。

get (1)	ostream* tie() const;
set (2)	ostream* tie (ostream* tiestr);

第一种形式 (1) 返回指向绑定输出流的指针。

第二种形式 (2) 将对象绑定到 tiestr 并返回一个指向调用之前绑定的流的指针(如果有)。

参数

tiestr - 输出流对象。

返回值

指向在调用之前绑定的流对象的指针,或者在流未绑定的情况下为空指针。

例外情况

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

数据竞赛

访问 (1) 或修改 (2) 流对象。

对同一流对象的并发访问可能会导致数据争用。

例子

下面的例子解释了 ios::tie 函数。

#include <iostream>     
#include <fstream>      

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
ios.htm