C++ ios 库 - tie
描述
它用于获取/设置绑定流。
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 − 输出流对象。
返回值
指向在调用之前绑定的流对象的指针,或者如果流未绑定,则为空指针。
异常
Basic guarantee − 如果抛出异常,则流处于有效状态。
数据竞争
访问 (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