Como no se si es C o C++ voy a poner un ejemplo en C.
Cuando usas:
Código:
programa.exe < archivo.txt
Lo que haces es mandar archivo.txt por el stdin.
Voy a explicarlo de manera rapida:
Un programa tiene 3 archivos por default: stdin (Standar Input<->Entrada Estandar), stdout (Standar Output<->Salida Estandar) y stderr (Standar Error<->Error Estandar). Por defecto, funciones como getchar, scanf trabajan sobre stdin, lo mismo con printf trabaja sobre stdout.
Cuando haces mi_programa.exe < archivo.txt lo que haces es que el contenido de archivo.txt vaya a stdin.
Igual que cuando haces mi_programa.exe > archivo.txt lo que haces es redireccionar stdout a archivo.txt
Sobre args y argv, solamente son 2 parámetros que recibe main, el primero indicando el numero de parámetros y el segundo el arreglo de parámetros (en este caso un arreglo de cadenas).
Dependiendo de tu IDE lo puedes configurar para redirigir stdin y stdout a un archivo.
Aquí te dejo un ejemplo:
Código C:
Ver original#include <stdio.h>
int main(int argv, char **args) {
int i;
char line[100];
printf("INICIO DE ARGUMENTOS DEL PROGRAMA\n"); for(i = 0; i < argv; i++)
printf("FIN DE ARGUMENTOS DEL PROGRAMA\n");
printf("INICIO LECTURA DE STDIN\n"); while(fgets(line
, 100, stdin
) != NULL
) { }
printf("FIN DE LECTURA DE STDIN\n");
return 0;
}
Puedes correrlo como:
Código:
programa.exe arg1 arg2 arg3 < archivo.txt
Ver los resultados y ver el código.