Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Sobrecargar << para escribir en fichero

Estas en el tema de Sobrecargar << para escribir en fichero en el foro de C/C++ en Foros del Web. Hola, buenas noches, estoy elaborando un programa y mi pregunta era si es posible sobrecargar el operador << para escribir directamente en un fichero. Lo ...
  #1 (permalink)  
Antiguo 01/12/2014, 15:27
 
Fecha de Ingreso: diciembre-2014
Mensajes: 2
Antigüedad: 9 años, 5 meses
Puntos: 0
Sobrecargar << para escribir en fichero

Hola, buenas noches, estoy elaborando un programa y mi pregunta era si es posible sobrecargar el operador << para escribir directamente en un fichero. Lo que quiero es que al escribir un cout me imprima en el terminal lo que haya en el cout y automaticamente se me copie en un fichero, ya que estar escribiendo uno a uno cada cout es un engorro ya que el programa es bastante largo. Espero que sea posible. Muchas gracias
  #2 (permalink)  
Antiguo 02/12/2014, 00:57
lareto
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sobrecargar << para escribir en fichero

http://www.cplusplus.com/reference/ios/ios/rdbuf/
  #3 (permalink)  
Antiguo 02/12/2014, 11:54
 
Fecha de Ingreso: diciembre-2014
Mensajes: 2
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Sobrecargar << para escribir en fichero

Gracias por contestar, he estado mirando la pagina que me mandaste y no me aclaro mucho, de hecho meto el codigo en mi programa y no obtengo lo que quiero, hay alguna otra manera alternativa?
  #4 (permalink)  
Antiguo 02/12/2014, 23:25
Avatar de kspr  
Fecha de Ingreso: agosto-2011
Ubicación: Ecuador
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 7
Respuesta: Sobrecargar << para escribir en fichero

que tal si rediriges el buffer a un stringstream?

Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <sstream>
  4.  
  5. int main()
  6. {
  7.     std::stringstream buffer;
  8.     std::streambuf * old = std::cout.rdbuf(buffer.rdbuf());
  9.  
  10.     std::cout << "hola mundo" << std::endl;
  11.     std::cout << "hola mundo" << std::endl;
  12.     std::cout << "hola mundo" << std::endl;
  13.  
  14.     std::string text = buffer.str();
  15.  
  16.     std::ofstream file;
  17.     file.open ("test.txt");
  18.     file << text;
  19.     file.close();
  20. }

Etiquetas: fichero, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:59.