Parameter an Hauptprogramm funktioniert nicht



  • Hallo,

    ich wollte eigentlich zu Testzwecken ein kleines Programm schreiben das bei aufruf von

    programm.exe -?

    ein Text ausgibt. Alles was ich kriege ist nichts warum?

    Hier der Code.

    #include <stdlib.h>
    #include <stdio.h>
    
    void main ( int argc , char *argv[] ) 
    {   
       int i; 
    
       /* Wenn mindestens ein Parameter angegeben wurde alle durchtesten */
       if (argc > 1)
       {
          for (i = 1; i < argc; i++)
          {
             if (argv[i] == "-?")
             {
                printf ("Test");
             }       
          }
       }
       else
       {
         /* wenn kein Aufruf Parameter angegeben wurde, Programm ausführen */
         printf ("\n\nProgramm wurde ohne -? aufgerufen\n\n" );
       }
    }
    


  • Das Problem ist, daß du Zeichenketten nicht so einfach mit == vergleichen kannst (== vergleicht Pointer, in deinem Fall ein Zeiger auf den übergebenen Parameter und ein Zeiger auf ein Literal). Zum Vergleich des String-Inhaltes solltest du folgendes verwenden:

    if(strcmp(argv[i],"-?")==0)
      printf("Test");
    


  • Oh,

    stimmt ja! Sorry aber total außer Betracht gezogen! Danke! 🙂


Anmelden zum Antworten