• Viernes 15 de Noviembre de 2024, 12:49

Autor Tema:  Imprimir texto mostrado en la consola.  (Leído 2748 veces)

sigfreak

  • Nuevo Miembro
  • *
  • Mensajes: 4
  • Nacionalidad: pe
    • Ver Perfil
Imprimir texto mostrado en la consola.
« en: Sábado 4 de Diciembre de 2010, 23:00 »
0
Bueno soy nuevo en la pagina, vengo de Peru un saludo a todos.
Intento imprimir lo mostrado en la consola, pero encontre pocos metodos. Me sugirieron guardar lo mostrado en un .txt con la funcion freopen("FileTemporal.txt","w",stdout") y luego imprimr esto, y eso es lo que queria preguntar, cómo lo hago?.

Otra pregunta que queria hacer era si esta es la forma correcta de imprimir lo mostrado en la consola, o hay mejores?.

Gracias por responder.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Imprimir texto mostrado en la consola.
« Respuesta #1 en: Domingo 5 de Diciembre de 2010, 13:57 »
0
Con freopen que yo sepa no saldría el texto por la salida estándar (ya sea consola o lo que fuere) y te iría al fichero directamente, ya que estás redirigiendo stdout a FileTemporal.txt. Como pone en man freopen:

Citar
The original stream (if it exists) is closed
Es decir, "el flujo original (si existe) es cerrado". En este stdout es cerrado para tu proceso.

sigfreak

  • Nuevo Miembro
  • *
  • Mensajes: 4
  • Nacionalidad: pe
    • Ver Perfil
Re: Imprimir texto mostrado en la consola.
« Respuesta #2 en: Domingo 5 de Diciembre de 2010, 21:33 »
0
Yo tenia la idea de dirigir el texto hacia el *.txt y luego imprimir este, pero no sabia cómo. Alguien conoce alguna manera de imprimir (usando una impresora, valga la redundancia) lo que muestra la consola?. Gracias

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Imprimir texto mostrado en la consola.
« Respuesta #3 en: Domingo 5 de Diciembre de 2010, 21:50 »
0
Puedes sacar el texto tanto en consola como en un fichero usando fprintf. Por ejemplo:

Código: C
  1. FILE* fd = fopen("prueba.txt", "w");
  2. char* msj = "Holasn";
  3. fprintf(stdout, msj);
  4. fprintf(fd, msj);
  5. close(fd);
  6.  

Epa

  • Miembro MUY activo
  • ***
  • Mensajes: 242
  • Nacionalidad: ar
    • Ver Perfil
Re: Imprimir texto mostrado en la consola.
« Respuesta #4 en: Domingo 5 de Diciembre de 2010, 21:57 »
0
Explica mejor cual es la idea.

Queres imprimir los resultados que tu porgrama saco a pantalla?
o despues de haber usado otro programa queres que se imprima lo que quedo en pantalla?

En cualquier caso, si el programa no necesita interaccion podes redirigir la salida a un archivo e imprimir ese

ejecutable > archivo

Saludos


Se me superpuso el post con el de m0skit0.
En caso de que tu programa genere los datos esa seria una buena solucion.
The sweet smell of a great sorrow lies over the land.


sigfreak

  • Nuevo Miembro
  • *
  • Mensajes: 4
  • Nacionalidad: pe
    • Ver Perfil
Re: Imprimir texto mostrado en la consola.
« Respuesta #5 en: Lunes 6 de Diciembre de 2010, 03:46 »
0
Parece que soy malo para explicarme  :D.

Lo que quiero es imprimir el flujo de datos que estan mostrados en la consola, en una EPSON, HP o cualquier impresora que se les venga a la mente.

Ojala me puedan entender, y gracias a todos por la ayuda.

PD: M0skit0, gracias por tanto en la PSP :beer:!

Edito: El programa es de interacción y deberia tener la opcion de imprimir los datos generados.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Imprimir texto mostrado en la consola.
« Respuesta #6 en: Lunes 6 de Diciembre de 2010, 12:25 »
0
Yo estoy en contra de gastar tanto papel. Como te he comentado lo dejas en un fichero, luego con el fichero puedes hacer lo que te venga en gana, pero no lo imprimas si no es estrictamente necesario.

PD: no hay de qué  ^_^

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Imprimir texto mostrado en la consola.
« Respuesta #7 en: Miércoles 8 de Diciembre de 2010, 05:41 »
0
Como no dices para que sistema operativo esta hecha tu aplicacion esta algo complicado...

La alternativa sencilla, es la que dijo mosquito, guardar el lo que sacaste por pantalla en un txt y luego imprimirlo, si tiene que ser interactivo desde el programa, podrias ejecutar el notepad con el parametro /p  cosa que abriria notepad  directamente para  imprimirlo
Código: Text
  1.  
  2. system("%systemroot%\system32\NOTEPAD.EXE /p C:/direccion_archivo/mi_archivo_de_texto.txt");
  3.  
  4.  



La otra alternativa, para que tu programa lo imprima directamente y no pedirle a notepad que lo haga, seria si estas en DOS tener una impresora que se conecte por el puerto de impresora  LPT (si es que tu computadora tiene ese puerto xD y si aun consigues la impresora.... porque DOS y USB no es muy compatible que digamos)
Y si es una aplicacion de windows, pero usas una consola, pues deberias utilizar la WINAPI, abrir un Handle al Canvas de la impresora e imprimir las cosas alli. Si nunca trabajaste con la WINAPI se te va hacer complicado.

sigfreak

  • Nuevo Miembro
  • *
  • Mensajes: 4
  • Nacionalidad: pe
    • Ver Perfil
Re: Imprimir texto mostrado en la consola.
« Respuesta #8 en: Domingo 12 de Diciembre de 2010, 02:50 »
0
Es para windows, y si, es en D.O.S.. Lo que quiero es exactamente eso, imprimir por LPT. Creo que lo mejor es dirigirlo a un .txt e imprimir.

Gracias a todos!