int argc, char *argv[]



  • hallo

    bin ein neuling in c++.
    bei vielen c++ codes hier im forum sieht man diese werte: int argc, char *argv[]
    die in der int main() übergeben werden...

    ich hab noch nicht verstanden wozu diese dienen.

    kann mir das jemand erklären?

    danke euch.

    andy





  • JA



  • JA

    Was soll dein Beitrag? Aber das in deinem Profil steht, dass du HTML programmierst, sagt schon alles...



  • usersource schrieb:

    hallo

    bin ein neuling in c++.
    bei vielen c++ codes hier im forum sieht man diese werte: int argc, char *argv[]
    die in der int main() übergeben werden...

    ich hab noch nicht verstanden wozu diese dienen.

    kann mir das jemand erklären?

    danke euch.

    andy

    Hallo,
    das ist nicht so schwer, es zu erklären:
    Wenn man ein Programm aus einer Eingabeaufforderung heraus startet, dann kann man dem Programm Parameter übergeben. Die Anzahl der Parameter steht in argc und die Werte stehen in argv.



  • Was soll dein Beitrag? Aber das in deinem Profil steht, dass du HTML programmierst, sagt schon alles...

    mein profil ist schon alt sehr alt

    da hab ich erst angefangen c++/c programmieren
    unter windows

    jetzt programmiere ich schon fast 2 jahre c/c++
    nur unter linux(Debian)

    B2T:
    so hab ich dass gemacht

    #include<iostream>
    int main (int argc, char** argv ){
    
    if(argv[1][0]=='-'&&argv[1][1]=='s'){
    
    std::cout<<"parameter s"<<std::endl;
    
    }
    else if(argv[1][0]=='-'&&argv[1][1]=='m'){
    
    std::cout<<"parameter m"<<std::endl;
    }
    
    else{
    std::cout<<"falscher parameter"<<endl;
    }
    
    }
    

    ich selber binn noch am rumbasteln mit der parameterübergabe

    aber bei meinen programmen funktionieren sie fast fehlerfrei



  • fbv.a schrieb:

    Was soll dein Beitrag? Aber das in deinem Profil steht, dass du HTML programmierst, sagt schon alles...

    mein profil ist schon alt sehr alt

    da hab ich erst angefangen c++/c programmieren
    unter windows

    jetzt programmiere ich schon fast 2 jahre c/c++
    nur unter linux(Debian)

    B2T:
    so hab ich dass gemacht

    #include<iostream>
    int main (int argc, char** argv ){
    
    if(argv[1][0]=='-'&&argv[1][1]=='s'){
    
    std::cout<<"parameter s"<<std::endl;
    
    }
    else if(argv[1][0]=='-'&&argv[1][1]=='m'){
    
    std::cout<<"parameter m"<<std::endl;
    }
    
    else{
    std::cout<<"falscher parameter"<<endl;
    }
    
    }
    

    ich selber binn noch am rumbasteln mit der parameterübergabe

    aber bei meinen programmen funktionieren sie fast fehlerfrei

    Man könnte natürlich auch strcmp nutzen.





  • das geht dann ungefähr so:

    ...
    int sflag = 0;
    int mflag = 0;
    ...
    while ((c = getopt (argc, argv, "sm")) != -1)
    ...           
      case 's':
                 sflag = 1;
                 break;
      case 'm':
                 mflag = 1;
                 break;
    ...
    

Anmelden zum Antworten