argumentos del main?

Iniciado por <<<-Basura->>>, 9 Octubre 2011, 09:21 AM

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

<<<-Basura->>>

Bueno estoy en C, y estoy tratando de pasar argumentos al main, pero se da el caso que quiero pasarle un numero :S, y bueno:


int main(int argc,char **argv){
//...
}


argv es el que toma los argumentos, pero es un puntero a char, entonces cuando meto un numero, es tomado como un caracter y lo que quiero es utilizarlo como numero.

intente con:

(int)argv[1];

si me lo accepta, pero!, cuando no es el mismo numero que metí, jeje ayuda,

Como hago para pasar un número por argumento??
<<<--Basura-->>>

Queta

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

<<<-Basura->>>

Gracias era lo que estaba necesitando!!  :-*
<<<--Basura-->>>

LearningSpanishProgrammer

Una cosa muy importante:

Código (cpp) [Seleccionar]

(int)argv[1]


No esta hacendo un cast const char * -> int
El compilador está  mostrando el puntero como  "int"

Código (cpp) [Seleccionar]
#include <stdio.h>

int main(int argc, char * argv[])
{
printf("%p\n", argv[0]);
printf("%i\n", argv[0]);
printf("%i\n", (int)argv[0]);
printf("%p\n", (int)argv[0]);

return 0;
}

Entender eso es muy importante para que no repita los mismos errores.

Estoy aprendiendo español, y tu estas aprendiendo programación

<<<-Basura->>>

Si gracias, LearningSpanishProgrammer, lo tomare en cuanta, aunque lo intente distinto y tampoco me sirvió me quedo con la solución de atoi(); XD


(int)*argv[1];


así no voy hacer el cast con el valor del puntero sino con el valor que contiene, pero el problema es que me da el valor en el código ascii, ejemplo digamos fue que el 9 el que inserte, entonces el valor de 9 es 57 decimal... pero gracias a tu posición entendí varias cosas :p
<<<--Basura-->>>