Duda con flujos c++

Buenas tengo que realizar un programa, cuya solución se muestra en la terminal o un archivo dependiendo del nº de parámetros. Para no ducplicar código he pensado algo como esto:
ostream *os;
    if(argc==3)
        os=&cout;
    if(argc==4){
        fstream aux(argv[3],ios::out);
        os=&aux;
    }


Pero a la hora de utilizar el flujo de salida, como el tipo de dato que utilizo es un puntero no puedo utilizar las funciones put y write de la clase ostream. Habia pensado algo así:

*os.write(reinterpret_cast<const char*>(&tam),sizeof(int));

Pero falla . Alguien me puede echar una mano?
El problema es simple, . liga más fuertemente que *. Es decir, tienes que usar una de las siguientes opciones:

(*o).blah
o->blah


- ferdy
1 respuesta