Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mester en 8 Febrero 2015, 13:51 pm



Título: Como poner argumentos en C
Publicado por: mester en 8 Febrero 2015, 13:51 pm
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?


Título: Re: Como poner argumentos en C
Publicado por: ivancea96 en 8 Febrero 2015, 14:28 pm
Código
  1. int main(int argc, char** args){/* ... */}
argc -> número de argumentos
args -> argumentos


Título: Re: Como poner argumentos en C
Publicado por: mester en 8 Febrero 2015, 14:34 pm
Código
  1. 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?


Título: Re: Como poner argumentos en C
Publicado por: ivancea96 en 8 Febrero 2015, 14:38 pm
Código:
Programa -a 200

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


Título: Re: Como poner argumentos en C
Publicado por: mester en 8 Febrero 2015, 14:47 pm
Código:
Programa -a 200

args = {"Programa", "-a", "200"}
Sigue sin salirme. ¿Puedes hacerlo en este programa?
Código:
 
#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


Título: Re: Como poner argumentos en C
Publicado por: ivancea96 en 8 Febrero 2015, 15:37 pm
Um perdona, no leí que estabas empezando, por eso lo dejé caer así xD

Código
  1. #include<stdio.h>
  2. int main(int args, char** argc)
  3. {
  4.    for(int i=0; i<args; i++)
  5.        printf("%s ",argc[i]);
  6.    return 0;
  7. }

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.


Título: Re: Como poner argumentos en C
Publicado por: mester en 8 Febrero 2015, 16:46 pm
Um perdona, no leí que estabas empezando, por eso lo dejé caer así xD

Código
  1. #include<stdio.h>
  2. int main(int args, char** argc)
  3. {
  4.    for(int i=0; i<args; i++)
  5.        printf("%s ",argc[i]);
  6.    return 0;
  7. }

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


Título: Re: Como poner argumentos en C
Publicado por: ivancea96 en 8 Febrero 2015, 17:39 pm
argc y args ya están declarados y con sus valores.
El programa que te pasé ahí, muestra por pantalla "argc"