C/Visual C - Leyendo del argv[ ]

 
Vista:

Leyendo del argv[ ]

Publicado por Alex Balcells (7 intervenciones) el 12/11/2002 20:23:36
Hola otra vez foro!
Os agradezco vuestra ayuda y tengo una nueva duda. Al intentar leer una posicion del argv[ ] del main, hago lo siguiente:

if (strcmp (argv[1], "-h"))
printf("Ayuda: elprograma se usa.............");

Bueno pues no me funciona e intento comparar con el simbolo = pero tampoco. ¿Aguien me puede ayudar? Gracias por vuestro tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Leyendo del argv[ ]

Publicado por Alvaro (122 intervenciones) el 12/11/2002 22:11:43
La pregunta que haces esta bien.
Pasa que strcmp retorna 0 cuando los strings que comparas son iguales, entonces no se entra el if porque el 0 es FALSO.
Debes hacer un if (!strcmp(argv[1], "-h")) o un if (strcmp(argv[1], "-h") == 0).
Así deberia funcionar.
Por otro lado, asegurate que al debugear el programa o correrlo estas pasando los parámetros.
SUERTE...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Leyendo del argv[ ]

Publicado por CHRISTIAN EOY (69 intervenciones) el 13/11/2002 03:05:04
El strcmp devuelve 0 si son iguales < 0 si el primero es menor q el segundo y >0 si el primero es mayor q el segundo.
Asi que en tu caso si queres que entre cuando son iguales tenes que poner if (strcmp (argv[1], "-h")==0) o si no if (!(strcmp (argv[1], "-h")))
en tu programa va a entrar cuadno seas distintos. Espero que te sirva. Chau. Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Leyendo del argv[ ]

Publicado por Oliver++ (339 intervenciones) el 13/11/2002 03:58:22
la funcion espera un puntero como primer parametro. Creo que le estas enviando un puntero a puntero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar