C/Visual C - Cambio de la salida estandar...

 
Vista:

Cambio de la salida estandar...

Publicado por mpassado (2 intervenciones) el 08/07/2004 01:12:51
Hola, esta es mi consulta:
Tengo una función que muestra en pantalla una tabla utilizando printf y cout, nada raro...
A través de comandos el usuario puede elegir la opción de mostrar en pantalla, o la de mostrar en pantalla y guardar en archivo, pasando el nombre del archivo nuevo.
Mi consulta sería si es posible cambiar la salida estándar stdout por la del archivo sin tener que modificar la función, y así solo tener que acceder a la misma dos veces para que lo muestre en pantalla y luego lo guarde en un archivo modificando la salida.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cambio de la salida estandar...

Publicado por javi (5 intervenciones) el 08/07/2004 02:30:45
Si pusieras el codigo seria mas facil ayudarte .
Quiza si utilizas solo las funciones de manejo de ficheros te saldria mas facil ,para imprimir en pantalla usas a la funcion fprintf(stdout,......) .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cambio de la salida estandar...

Publicado por chuidiang (677 intervenciones) el 08/07/2004 09:55:27
Haz que todo lo de escribir sea con

fprintf (salida, "...");

Cuando quieras escribir en pantalla haz

salida = stdout;

Cuando quieras imprimir, si estas en windows, haz

salida = fopen ("PRN:", "w");

Tendrás que depurar los detalles, pero espero que se entienda la idea ...

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cambio de la salida estandar...

Publicado por mpassado (2 intervenciones) el 08/07/2004 19:14:25
La función frpintf debe recibir en el primer parámetro un tipo FILE... por lo que la variable "salida" debe serlo, pero como se apuntaría a stdout ?

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cambio de la salida estandar...

Publicado por chuidiang (677 intervenciones) el 09/07/2004 09:52:11
stdout es un FILE (en realidad un FILE *).

fprintf (stdout, "Hola\n");

funciona correctamente.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar