PDA

View Full Version : Programa en C.


leo_rp
04-14-2013, 10:09 PM
Escriba un programa que se invoque desde la línea de comandos con un argumento. Dicho
argumento deberá ser numérico y validado convenientemente. El programa deberá pedir el
ingreso de tantas cadenas de caracteres como indique el citado argumento y, posteriormente
deberá listar por pantalla las mismas.


Leyendolo parece sumamente facil, pero me mata usando los argumentos en la linea de comandos, osea no entiendo como usar argc y argv, si alguien me ayuda con este programa aparentemente sencillo se los agradeceria mucho.

Desde ya muchas gracias a toda la comunidad que siempre me ayuda, orgulloso de ser parte de ella.

alferatz
04-14-2013, 10:55 PM
es sencillo, la declaración de tu función main va a ser de la siguiente manera:


int main (int argc, char *argv[])


argc es el número de parámetros que recibe el programa. argv es un arreglo de punteros, donde cada posición es un puntero al parámetro correspondiente. argc siempre es mayor o igual a 1, ya que el nombre del ejecutable cuenta como parámetro. esto significa que si tu ejecutable se llama "test", entonces argv[0] será un puntero apuntando a "test". por ejemplo:

c:\> test.exe hola 4

argc: 3
argv[0]: test.exe
argv[1]: hola
argv[2]: 4

saludos

leo_rp
04-14-2013, 11:41 PM
es sencillo, la declaración de tu función main va a ser de la siguiente manera:



argc es el número de parámetros que recibe el programa. argv es un arreglo de punteros, donde cada posición es un puntero al parámetro correspondiente. argc siempre es mayor o igual a 1, ya que el nombre del ejecutable cuenta como parámetro. esto significa que si tu ejecutable se llama "test", entonces argv[0] será un puntero apuntando a "test". por ejemplo:

c:\> test.exe hola 4

argc: 3
argv[0]: test.exe
argv[1]: hola
argv[2]: 4

saludos





Estoy entendiendo un poco mas la cosa,soy principiante en esto, lo que no me queda claro es a que te referis cuando decis "parametros", yo pensaba, desde mi ignorancia, que a argc y argv habia que declararlos en algun lado, pero por lo que me decis veo que no.Gracias