Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problemas con la funcion MAIN()

Estas en el tema de problemas con la funcion MAIN() en el foro de C/C++ en Foros del Web. hola a todos bueno tengo que hacer un proyecto para la uni muy dificil ( o al menos para mi que todavia no conozco muhco ...
  #1 (permalink)  
Antiguo 25/09/2006, 21:28
 
Fecha de Ingreso: octubre-2004
Mensajes: 107
Antigüedad: 20 años, 1 mes
Puntos: 0
problemas con la funcion MAIN()

hola a todos

bueno tengo que hacer un proyecto para la uni muy dificil ( o al menos para mi que todavia no conozco muhco de C)

la cuestion es que ya estoy teniendo mis primeros problemas...

con respecto a la funcion MAIN: int main(int argc, char *argv[])

supongamos que mi programa se llama ejemplo1.c

al ejercutar mi programa desde la consola DOS yo kiero mandarle parametros, ej: ejemplo1.exe -h

y luego en mi codigo quiero reconocer que se ah ingresado el parametro -h para hacer una accion

ahroa bien.. no me reconoce hacer esto:

if (argv[1]=="-h") { ... };

alguien me puede explicar porque? y como puedo hacer?

desde ya muchas gracias!
  #2 (permalink)  
Antiguo 25/09/2006, 23:49
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 7 meses
Puntos: 2
las cadenas de caracteres no se comparan con el operador '==' de igualdad,
al menos que programes en C++ con la clase string, pero en este caso lo mejor es que uses, strcmp().

la libreria es: string.h.


seria:

strcmp(argv[1], "-h"); la funcion retorna 0, si son iguales, 1 si la primera es mayor que la segunda y -1 lo contrario.

Saludos.
  #3 (permalink)  
Antiguo 26/09/2006, 04:24
 
Fecha de Ingreso: octubre-2004
Mensajes: 107
Antigüedad: 20 años, 1 mes
Puntos: 0
hola!

ya probe eso de strcmp(argv[1], "-h"); y me tira error de windows... esos errores raros de no se peude read la memoria y bla bla, creo que son errores de punteros.......

estoy ya medio loko con este tema... y para colmo tengo que implementar un calculador de CRC con un polinomio especial que nos dieron en la univerisdad...

estoy muy perdido..

voy a seguir pidiendo ayuda cuando me trabe otra vez

gracias!
  #4 (permalink)  
Antiguo 26/09/2006, 08:15
Avatar de Pistemas  
Fecha de Ingreso: diciembre-2004
Ubicación: entre las piernas de una hermosa mujer
Mensajes: 1.552
Antigüedad: 19 años, 11 meses
Puntos: 8
int r;
if ( (r=(strcmp(argv[],"-h") ) ==0); // cuando son iguales

// accion a realizar.

Funcionara?

tambien podrias checar el programa paso a paso, sin hacer todavia la condicional y rastrear que recibe argv[]...

si lo deseas, coloca aqui el codigo de tu programa y vemos que pasa...

  #5 (permalink)  
Antiguo 26/09/2006, 08:56
 
Fecha de Ingreso: octubre-2004
Mensajes: 107
Antigüedad: 20 años, 1 mes
Puntos: 0
rarisimo

gracias!

funciona de las dos formas pero sigue tirando errores..

estoy usando DEV-C++ 4.9.9.2

y cuando compilo y corro el programa desde el dev c me tira ese error rojo de la memoria no se puede read y bla bla

en cambio si lo corro desde una consola de comandos funciona sin problemas :S

es muy raro...

de todas formas este programa tiene ke ser ejecutado desde la consola de comandos porque necesita el nombre del archivo a calcular el CRC como parametro pero es muy raro que desde devc tire errores.... sera porque no hay nada en el arreglo de argumentos???????

gracias por la ayuda proximamente mas problemas :P

esto de manejar bits en C me tiene muy mal

salu2!
  #6 (permalink)  
Antiguo 26/09/2006, 11:36
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por tksko Ver Mensaje
de todas formas este programa tiene ke ser ejecutado desde la consola de comandos porque necesita el nombre del archivo a calcular el CRC como parametro pero es muy raro que desde devc tire errores.... sera porque no hay nada en el arreglo de argumentos???????
Si tú ejecutas el programa desde Dev-C++, va a crearte un array de 1 posición, que contendrá el nombre del programa.

Después del [0], los demás son argumentos. Con Dev-C++, no mandas argumentos al menos eque lo especifiques.

Si no quieres tener problemas, utliza el segundo parámetro estándar, int argc, para saber cuántas posiciones tienes en argv[].
  #7 (permalink)  
Antiguo 27/09/2006, 07:52
Avatar de Pistemas  
Fecha de Ingreso: diciembre-2004
Ubicación: entre las piernas de una hermosa mujer
Mensajes: 1.552
Antigüedad: 19 años, 11 meses
Puntos: 8
ó intenta compilar el programa en C++ 3.0 (version para consola de comandos), en este si me han funcionado las aplicaciones que usan el argv[].

  #8 (permalink)  
Antiguo 27/09/2006, 08:07
 
Fecha de Ingreso: octubre-2004
Mensajes: 107
Antigüedad: 20 años, 1 mes
Puntos: 0
ahora bien

ya pude solucionar el problema! muchas gracias a todos

ahora bien tengo ke empezar con mi algoritmo de crc y la verdad tengo poca idea...

estube viendo varias implementaciones de crc32, y algunas otras pero la verdad no entiendo mucho del tema..

tengo que hacer el proyecto con la forma de divisiones sucesivas en modulo 2 aplicando XOR con un polinomio especial que nos dieron (para que no nos copiemos del 32 y etc :P)

alguien ha echo alguna vez algun algoritmo de crc y puede darme 1 manito?

gracias!
  #9 (permalink)  
Antiguo 27/09/2006, 09:54
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por tksko Ver Mensaje
ya pude solucionar el problema! muchas gracias a todos

ahora bien tengo ke empezar con mi algoritmo de crc y la verdad tengo poca idea...

estube viendo varias implementaciones de crc32, y algunas otras pero la verdad no entiendo mucho del tema..

tengo que hacer el proyecto con la forma de divisiones sucesivas en modulo 2 aplicando XOR con un polinomio especial que nos dieron (para que no nos copiemos del 32 y etc :P)

alguien ha echo alguna vez algun algoritmo de crc y puede darme 1 manito?

gracias!
Qué gracia ;) No explicas siquiera cómo solucionaste el problema que tenías y encima... ¿ahora quieres que te hagamos el proyecto "super-difícil para la uni" del CRC?

Por mi parte, no te puedo ayudar, es demasiado difícil para mi
  #10 (permalink)  
Antiguo 27/09/2006, 13:31
 
Fecha de Ingreso: octubre-2004
Mensajes: 107
Antigüedad: 20 años, 1 mes
Puntos: 0
el problema anerior era que al ejecutarlo desde DEV-C el arreglo de string no tenia un string valido en la posicion 1 (en la pos 0 esta el nombre del .exe) y entonces me saltaba error de puntero y eso no pasaba al correrlo desde consola porque yo le mandaba mas parametros......

y con respecto al crc.. sigo sin entender como hacerlo...... a ver si alguien me da una mano!

salu2
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 22:31.