Argumentos en la línea de órdenes Se puede pasar argumentos en la línea de órdenes a un programa cuando empieza su ejecución. Cuando se llama a main() se le invoca con dos argumentos. int argc char **argv Contador de argumentos Vector de argumentos Ejemplo: (eco de los argumentos en la línea de órdenes) #include<stdio.h> main(int argc, char **argv) { int i; } for(i=1;i<argc;i++) printf("%s ",argv[i]); printf("\n"); return 0; Muchas veces uno quiere pasar parámetros numéricos al programa, como por ejemplo > prog 3 5.0e-7 argc : 3 (número de parámetros) argv[0] : "prog" (nombre del programa) argv[1] : "3" argv[2] : "5.0e-7" argv[3] : NULL En este caso los parámetros numéricos son arrays de caracteres! En la biblioteca estándar están definidas dos funciones para convertir cadenas en números enteros o punto flotante. int atoi(char*) double atof(char*) Convertir cadena en entero Convertir cadena en punto flotante Ejemplo: #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { int i; double df; if(argc != 3) { fprintf(stderr, "usage : return EXIT_FAILURE; } i = atoi(argv[1]); df = atof(argv[2]); fprintf(stdout, " } i: return EXIT_SUCCESS; %d %s <i> df: <df>\n", argv[0]); %f\n", i, df);