Introducción a Patrones de Diseño en C++ con Qt4/1.14.1 main y Argumentos de Línea de Comandos

De Wikilibros, la colección de libros de texto de contenido libre.
Versión para imprimir esta pagina

main y Argumentos de Línea de Comandos[editar]

main() es una función (Capítulo 5) que es llamada al inicio del programa. Si el programa acepta argumentos de línea de comandos, debemos definir main con su lista de parámetros completa.


C permite flexibilidad en la forma en como los argumentos son definidos dentro de main(), por ello podrás ver que está definido en na variedad de formas:


  • int main(int argc, char* argv[])
  • int main(int argc, char ** argv)
  • int main(int argCount, char * const argValue[])


Todas las formas de arriba son válidas, y todas ellas definen dos parámetros. Esos parámetros contienen información perteneciente a la reconstrucción de los argumentos de la línea de comandos pasados dentro del programa desde el proceso padre (una consola de línea de comandos, un administrador de ventanas, etc.) El Ejemplo 1.17 es un programa main simple que imprime sus arcumentos de línea de comando.


Ejemplo 1.17[editar]

Ejemplo: Ejemplo 1.17 src/main/clargs/clargs.cpp
#include <QTextStream>

int main (int argCount, char* argValue[]) {
   QTextStream cout(stdout);
    
   for (int i=0; i<argCount; ++i) {
       cout << "argv# " << i << " es " << argValue[i] << endl;
   }
   return 0; 
}


argValue, o argv para resumir, es un array bidimensional (Sección 21.4) de cadena. argCount, o argc para resumir, es el número de arreglos de caracter dentro de argv. argv contiene cada cadena de línea de comando como un ítem dentro de su array.


int main()devuelve” un entero, que debería ser 0 si todo ha ido bien, o un código de error distinto de cero si algo salió mal.


Nota:
Trata de no confundir esta interpretación de 0 con el valor boleano falso, que también es igual a 0



Si corremos este programa con argumentos de línea de comandos, veremos algo como esto en la salida:

clargs>./clargs spam huevos "guerras espaciales" 123
argv# 0 es /home/ezust/src/main/clargs/clargs
argv# 1 es spam
argv# 2 es huevos
argv# 3 es guerras espaciales
argv# 4 es 123


El primer argumento es el nombre de la ruta del ejecutable, Los otros argumentos son tomados desde la línea de comandos como cadenas separadas por espacios o tabulaciones. Para pasar una cadena que contenga espacios en un argumento simple, debes encerrar la cadena entre comillas.


Versión para imprimir esta pagina