Pregunta sobre condicional If.

Iniciado por Zodiak98, 29 Julio 2015, 00:47 AM

0 Miembros y 1 Visitante están viendo este tema.

Zodiak98

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 (cpp) [Seleccionar]

#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
    /*
    cout << "Cantidad de argumentos: " << argc << endl;

    for(int i = 0; i < argc; i++) {
        cout << argv[i] << endl;
    }*/

    //cout << argv[1] << endl;
    if(argv[1] == (char*)"123") {
        cout << "Argumento correcto." << endl;
    }

    cin.get();
    return 0;
}


Gracias de antemano. :D

crack81

Prueba esto

Código (cpp) [Seleccionar]
#include<iostream>
#include<cstring>
using namespace std;

int main(int argc, char* argv[])
{
string palabra="soy la palabra";

if (strcmp(argv[1],palabra.c_str())==0){
cout<<"Son iguales "<<endl;
}
else{
   cout<<"Son diferentes"<<endl;
}

cin.get();
return 0;
}
//---------------------------------------------------------------------------
Si C/C++ es el padre de los lenguajes entonces ASM es dios.

Zodiak98

Hombre gracias, me he olvidado por completo que en C++ no se pueden comparar cadenas con "==" así no más. Hahah :)

joecarl

Sí que se puede, si usas el tipo std::string.