#include <iostream>
#include <fstream>
#include <sstream>

struct fraccion {
   int num, den;
};

std::ostream& operator<<(std::ostream& out, fraccion f) {
   out << f.num << "/" << f.den;
   return out;
}

int main( ) {
   fraccion f = { 1, 2 };
   std::ostringstream sal_cadena;
   std::ofstream sal_archivo("salida_poo.txt");    // cuidado: sobreescribirá el archivo si ya existe

   std::cout << f << "\n";
   sal_cadena << f << "\n";
   sal_archivo << f << "\n";

   std::cout << "La impresion en la cadena fue: " << sal_cadena.str( );
}
