Foros del Web » Programación para mayores de 30 ;) » Programación General »

Lenguaje C, recibir un argumento como opr ejemplo: 33

Estas en el tema de Lenguaje C, recibir un argumento como opr ejemplo: 33 en el foro de Programación General en Foros del Web. Buenas tardes, nuevamente. Bueno, verán, tengo lo siguiente: #include .... #include .... void main(int argc, char *argv[]){ printf("%d", *argv[1]); } Bueno, pues cuando ejecuto por ...
  #1 (permalink)  
Antiguo 29/12/2004, 10:19
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Lenguaje C, recibir un argumento como opr ejemplo: 33

Buenas tardes, nuevamente.

Bueno, verán, tengo lo siguiente:

#include ....
#include ....

void main(int argc, char *argv[]){
printf("%d", *argv[1]);
}


Bueno, pues cuando ejecuto por ejemplo:

programa 35 26 87

Me muestra solamente el número 3, ¿Qué tengo que hacer para que me muestre todo el parámetro, es decir, 35?
__________________
Charlie.
  #2 (permalink)  
Antiguo 29/12/2004, 10:48
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
printf("%s", argv[1]);
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 29/12/2004, 11:49
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
printf("%d%d%d", *argv[1], *argv[2], *argv[3]);

Mas practico no???

Saludos
  #4 (permalink)  
Antiguo 29/12/2004, 12:08
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
No, eso no funciona. Apuntan al primer byte de la cadena y se imprime el valor del caracter en ASCII.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Última edición por Eternal Idol; 29/12/2004 a las 12:10
  #5 (permalink)  
Antiguo 29/12/2004, 12:11
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
a como de que no. Yo siempre lo uso asi.

Alomejor depende del compilador. Pero argv es un puntero a cadena y pues cada puntero apunta a una cadena como sabras.
entonces el 0 apunta a la primer cadena, el 1 a la seguna, ... y asi no???

Saludos
  #6 (permalink)  
Antiguo 29/12/2004, 12:13
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Ejemplo de output con ese código:

programa 522 57 50:
>>535353

El código ASCII de 5 es 53.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 29/12/2004, 12:17
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
es posible, entonces usando el %s, con eso.
printf("%s%s%s", *argv[1], *argv[2], *argv[3]);

Yo creo que con eso tendriamos no?

Saludos
PD Gracias por la aclaracion.
  #8 (permalink)  
Antiguo 29/12/2004, 12:19
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Tampoco funcionaría así, daría una excepción porque como te comenté antes estas apuntando al valor del array que en el caso anterior era 53 y ese puntero no es válido.

Así si:
printf("%s-%s-%s", argv[1], argv[2], argv[3]);
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:42.