Como poner argumentos en C

Iniciado por mester, 8 Febrero 2015, 13:51 PM

0 Miembros y 1 Visitante están viendo este tema.

mester

Estoy empezando con C y me gustaría saber como poner parametros fuera del programa. Por ejemplo: Supongamos que es un programa que suma dos numeros A y B
>./Programa -a 200 -b 80

¿Podríais ponerme un ejemplo del codigo para esto?
Justicia es dar a cada uno lo que se merece

ivancea96

int main(int argc, char** args){/* ... */}
argc -> número de argumentos
args -> argumentos

mester

Cita de: ivancea96 en  8 Febrero 2015, 14:28 PM
int main(int argc, char** args){/* ... */}
argc -> número de argumentos
args -> argumentos

¿No puedes ser un poco mas específico?
¿Puedes ponerme un codigo entero de lo que es?
Justicia es dar a cada uno lo que se merece

ivancea96

Programa -a 200

args = {"Programa", "-a", "200"}

mester

Cita de: ivancea96 en  8 Febrero 2015, 14:38 PM
Programa -a 200

args = {"Programa", "-a", "200"}

Sigue sin salirme. ¿Puedes hacerlo en este programa?

#include<stdio.h>
int main()
{
switch (dia_diciembre)
{
case 6: printf("La Constitución"); break;
case 8: printf("La Inmaculada Concepción"); break;
case 25: printf("Navidad"); break;
case 31: printf("Nochevieja"); break;
default: printf("Ese día no es festivo en Diciembre"); break;
}
return 0;


Es que he dicho que acabo de empezar y no me entero de mucho
Justicia es dar a cada uno lo que se merece

ivancea96

Um perdona, no leí que estabas empezando, por eso lo dejé caer así xD

#include<stdio.h>
int main(int args, char** argc)
{
    for(int i=0; i<args; i++)
        printf("%s ",argc[i]);
    return 0;
}


Eso imprimirá todos los argumentos.

argc guarda los argumentos, y es un es un char**, es decir, un arreglo de cadenas de caracteres.
Si args es 5, entonces habrán 5 cadenas. Cada cadena, será un argumento del programa.

mester

Cita de: ivancea96 en  8 Febrero 2015, 15:37 PM
Um perdona, no leí que estabas empezando, por eso lo dejé caer así xD

#include<stdio.h>
int main(int args, char** argc)
{
    for(int i=0; i<args; i++)
        printf("%s ",argc[i]);
    return 0;
}


Eso imprimirá todos los argumentos.

argc guarda los argumentos, y es un es un char**, es decir, un arreglo de cadenas de caracteres.
Si args es 5, entonces habrán 5 cadenas. Cada cadena, será un argumento del programa.

¿Y como declaro esas cadenas?
Es que no me queda nada claro. Ya te digo, si lo puedes hacer sobre el programa ese que he puesto antes me facilitarías las cosas mucho mas. Gracias por las molestias
Justicia es dar a cada uno lo que se merece

ivancea96

argc y args ya están declarados y con sus valores.
El programa que te pasé ahí, muestra por pantalla "argc"