Duda C++ facil

#include

void main (int num, char *cadena[]) {
cout << "Num de arguments: " << endl;
}


Este es un ejercicio para pasar argumentos a "Main" desde la linea de comandos buien desde MS DOS o desde ekl mismo programa, haciendo Pjects-Settings-Debug-Program arguments

LA primera opcion, la de MS DOS no me funciona y ademas donde lo tengo que hacer niisquiera hay ventanas MS DOS, por lo que tengo que usar la segunda

Pero tampoco funciona. En argumentos meto por ejemplo 2 4 5 y nada


Otra duda que tengo es como roconoce la variable num como el numero de argumentos que se meten, si no hay codigo que se lo diga.

Unsaludo
void main (int num, char *cadena[]) {
cout << "Num de arguments: " << endl;
}

sin no imprimes num por ningun sitio.... no saldrá nada , sólamente "Num de arguments: "

prueba con

cout << "Num de Arguments:" << num << endl;

Otra duda que tengo es como roconoce la variable num como el numero de argumentos que se meten, si no hay codigo que se lo diga.


Si te fijas en el main estás diciendo que acepte dos variables, una va a ser el num de argumentos, y la otra los argumentos... siempre que se ejecute , el sistema operativo rellena esos dos valores.

Saludos.
El numero de parametros se lo pasa el mismo sistema operativo. Tu pones void main(int argc, char **argv) y al llamar al programa el SO le pasa primero el numero de parametros de la llamada y luego los valores de los parametros. Es decir no tienes que poner miprograma.exe "2" parametro1 parametro2, el SO pone automaticamente ese 2.
A lo mejor es el mismo compilador el que se encarga luego de modificar el programa para que "entienda" que es el numero de parametros
Muchas gracias,

vaya despiste lo del num, ya lo tengo. XD

Lo de que num es el numero de caracteres y char cadena son los argumentos en un vector, pues lo entiendo pero no se pq es asi.

Donde le dices al main que int num tiene que ser el numero de argumentos?

O esque simpre se pone asi?
Ok, bueno creo que he entendido. Es algo utilizado comunmente lo de int y luego char

Por ejemplo si pusiese

void main (int num, char *cadena[], int pares)

num seria el numero de caracteres, char cadena el vector de memoria dinamica de caracteres. Pero pares no seria el numero de numeros pares pq no esta definido en ningun sitio, a eso me referia con el num y el char cadena.

Se supone que solo se puede usar con esas dos funciones
4 respuestas