/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Redireccionar entrada estándar

 
      Índice del Foro elrincondelc.com -> Dev-C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
juliop89



Registrado: 14 Feb 2011
Mensajes: 1

MensajePublicado: 14/02/2011 7:37 am
Título: Redireccionar entrada estándar

En una aplicación de consola en C, como se puede redireccionar la entrada estándar a un fichero en el Dev C++.

Por ejemplo, en linux se haría:

./programa < datos

donde datos es el fichero con lo que se escribe en la entrada estándar.

Muchas gracias.
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 6586
Ubicación: Mexico

MensajePublicado: 14/02/2011 8:26 am
Título:

Hola juliop89

Bienvenido a los foros. Por favor lee sus reglas.

Siendo honesto no estoy muy seguro de entender tu pregunta.

----

¿Solo quieres redirigir un archivo a la entrada estandar en MS Windows?

Si es asi puedes utilizar el mismo metodo, trabajan casi igual tanto en MS Windows como en Linux.

----

¿Quieres utilizar las funciones para el manejo de la entrada estandar como scanf/getchar/etc. pero utilizando un archivo?

Si ese es el caso puedes utilizar la funcion freopen pero hay que tener cuidado con su uso ya que tiene ciertos requisitos, por ejemplo la operacion debe realizarse antes de cualquier uso del stream.

Un ejemplo sencillo utilizando archivos junto con las funciones para el manejo de la entrada (getchar) y salida estandar (printf):
Código:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   int ch;
   
   /*
   ** Se deben pasar los nombres de los archivos de
   ** entrada y salida mediante la linea de comandos.
   */
   if (argc != 3)
      return EXIT_FAILURE;
   
   /* Redireccionar stdin y stdout */
   if (freopen(argv[1], "r", stdin) == NULL)
      return EXIT_FAILURE;
   if (freopen(argv[2], "w", stdout) == NULL)
      return EXIT_FAILURE;
   
   /* Procesar los archivos utilizando stdin y stdout */
   while ((ch = getchar()) != EOF)
      printf("%c", ch);
   
   fclose(stdin);
   fclose(stdout);
   
   return EXIT_SUCCESS;
}


Un saludo
_________________
Memory never recaptures reality. Memory reconstructs. All reconstructions change the original, becoming external frames of reference that inevitably fall short.
--
Mentat Handbook
Volver arriba
      Índice del Foro elrincondelc.com -> Dev-C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com