Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Zodiak98 en 29 Julio 2015, 00:47 am



Título: Pregunta sobre condicional If.
Publicado por: Zodiak98 en 29 Julio 2015, 00:47 am
Miren, intento hacer un programa que agarre el segundo argumento que se le pase desde la línea de comandos y luego este imprima un mensaje si es el correcto:
Algo por ejemplo así:

programa.exe argumento.

Luego dentro del programa se comparará si ese argumento es el que está dentro ya establecido o otro, de ser así imprimirá un mensaje en la pantalla.
Pero no sé qué estoy haciendo mal, este es el código que llevo:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(int argc, char* argv[])
  6. {
  7.    /*
  8.     cout << "Cantidad de argumentos: " << argc << endl;
  9.  
  10.     for(int i = 0; i < argc; i++) {
  11.         cout << argv[i] << endl;
  12.     }*/
  13.  
  14.    //cout << argv[1] << endl;
  15.    if(argv[1] == (char*)"123") {
  16.        cout << "Argumento correcto." << endl;
  17.    }
  18.  
  19.    cin.get();
  20.    return 0;
  21. }
  22.  

Gracias de antemano. :D


Título: Re: Pregunta sobre condicional If.
Publicado por: crack81 en 29 Julio 2015, 01:00 am
Prueba esto

Código
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4.  
  5. int main(int argc, char* argv[])
  6. {
  7. string palabra="soy la palabra";
  8.  
  9. if (strcmp(argv[1],palabra.c_str())==0){
  10. cout<<"Son iguales "<<endl;
  11. }
  12. else{
  13.   cout<<"Son diferentes"<<endl;
  14. }
  15.  
  16. cin.get();
  17. return 0;
  18. }
  19. //---------------------------------------------------------------------------
  20.  


Título: Re: Pregunta sobre condicional If.
Publicado por: Zodiak98 en 29 Julio 2015, 01:07 am
Hombre gracias, me he olvidado por completo que en C++ no se pueden comparar cadenas con "==" así no más. Hahah :)


Título: Re: Pregunta sobre condicional If.
Publicado por: joecarl en 29 Julio 2015, 08:19 am
Sí que se puede, si usas el tipo std::string.