Biblioteca IOS de C ++ - tie

Descripción

Se utiliza para obtener / establecer una secuencia vinculada.

C ++ 98

Por defecto, cin está vinculado a cout y wcin a wcout. Las implementaciones de la biblioteca pueden vincular otros flujos estándar en la inicialización.

C ++ 11

De forma predeterminada, los flujos estrechos estándar cin y cerr están vinculados a cout, y sus contrapartes de caracteres anchos (wcin y wcerr) a wcout. Las implementaciones de la biblioteca también pueden atar clog y wclog.

Declaración

A continuación se muestra la declaración de la función ios :: tie.

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

La primera forma (1) devuelve un puntero al flujo de salida vinculado.

La segunda forma (2) vincula el objeto a tiestr y devuelve un puntero al flujo vinculado antes de la llamada, si lo hubiera.

Parámetros

tiestr - Un objeto de flujo de salida.

Valor devuelto

Un puntero al objeto de flujo vinculado antes de la llamada, o un puntero nulo en caso de que el flujo no estuviera vinculado.

Excepciones

Basic guarantee - si se lanza una excepción, el flujo está en un estado válido.

Carreras de datos

Accede (1) o modifica (2) el objeto de flujo.

El acceso simultáneo al mismo objeto de flujo puede provocar carreras de datos.

Ejemplo

En el siguiente ejemplo se explica la función 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;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

tie example:
This is inserted into cout