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

[SOLUCIONADO] Sobre argv

Estas en el tema de Sobre argv en el foro de C/C++ en Foros del Web. Hola a todos,estoy empezando a programar con C y bueno ,aunque son ejercicios fáciles estoy teniendo unos problemas a ver si me podéis ayudar. Resulta ...
  #1 (permalink)  
Antiguo 27/09/2014, 03:49
 
Fecha de Ingreso: diciembre-2012
Mensajes: 26
Antigüedad: 11 años, 4 meses
Puntos: 0
Sobre argv

Hola a todos,estoy empezando a programar con C y bueno ,aunque son ejercicios fáciles estoy teniendo unos problemas a ver si me podéis ayudar.

Resulta que tengo que según los parámetros de llamada al programa mostrar unas opciones es decir:

$./opciones -c
deberá mostrar:
Argumento 1 es Compilar

$./opciones -c -E
deberá mostrar:
Argumento 1 es Compilar
Argumento 2 es Preprocesar


Del ejercicio anterior,que era mostrar cuantos argumentos se pasaban y cuales eran,tengo esto y me funciona ,asi que a partir de ahi es segun una "c" o una "E" mostrar una cosa u otra
Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char *argv[]) {
  4.  
  5.      printf("Numero de argumentos = %d \n",argc);
  6.      int i=0;
  7.      for(i=0;i<argc;i++){
  8.       printf("Argumento %d es %s\n ",i,argv[i]);
  9.    
  10.        
  11.      }
  12. }

¿Alguna idea?

Saludos y Gracias
  #2 (permalink)  
Antiguo 27/09/2014, 06:27
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Sobre argv

Intenta usar "if"
__________________
Visita mi perfil en LinkedIn
  #3 (permalink)  
Antiguo 28/09/2014, 09:37
 
Fecha de Ingreso: diciembre-2012
Mensajes: 26
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Sobre argv

Tengo esto:
Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char *argv[]) {
  4.  
  5.      int i=1;
  6.      char e;
  7.      for(i=1;i<argc;i++){
  8.      e=argv[i][1];
  9.     // printf("%c\n",argv[i][1]);
  10.      if(e=="c")
  11.       printf("Argumento %d es Compilar \n",i);
  12.      if(e=="E")
  13.       printf("Argumento %d es Preprocesar \n",i);
  14.      
  15.        
  16.      }
  17.  
  18.      
  19. }

Pero me da error al compilar:

Código BASH:
Ver original
  1. opciones.c: In function ‘main’:
  2. opciones.c:10:10: warning: comparison between pointer and integer [enabled by default]
  3.       if(e=="c")
  4.           ^
  5. opciones.c:12:10: warning: comparison between pointer and integer [enabled by default]
  6.       if(e=="E")
  7.           ^
  #4 (permalink)  
Antiguo 28/09/2014, 10:15
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Sobre argv

Estas comparando con un caracter, no con una cadena, por lo que debes usar comillas simples.

Código C:
Ver original
  1. if(e=='c')


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 28/09/2014, 11:56
 
Fecha de Ingreso: diciembre-2012
Mensajes: 26
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Sobre argv

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Estas comparando con un caracter, no con una cadena, por lo que debes usar comillas simples.

Código C:
Ver original
  1. if(e=='c')


Un saludo
Eso era,gracias :)

Etiquetas: funcion, int, programa
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 18:35.