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