wie ein string-Problem



  • Hallo Kollegen!

    Finde leider meinen Fehler nicht im Code.
    Habe schon herumgegoogelt, aber leider konnte ich meinen Fehler trotzdem nicht beheben. 😕
    Vielleich kann mir ja einer von Euch helfen, bitte.

    if(argc > 1)
    {
      char const *argument = argv[1];     
      printf("argument: %s\n",argument);
      char const *pos = strchr(argument, '-');
          printf("debug\tpos: %s\n",pos);
          if(pos);
          {
    	verboseflag = inputHandler(argc, argv);
          }
    

    Also der Code sollte - erkennen. Sobald er weiß das ein Minus da ist, sollte er
    in den inputHandler gehen.
    Sonst darf er dort aber nicht hin. Da es sich nicht um einen gewünschten Parameter (gewünschte Form -x oder --x) handelt.

    LG
    Luis ➡



  • Bei

    if(pos);
    

    ist das Semikolon zu viel. Übrigens erzeugt das printf undefiniertes Verhalten, wenn der Parameter keinen Bindestrich enthält, und womöglich solltest du das Orakel mal nach getopt befragen.



  • Du solltest bei printf das %s mal durch %p ersetzen, damit es bei bei NULL nicht knallt.



  • seldon schrieb:

    Bei

    if(pos);
    

    ist das Semikolon zu viel. Übrigens erzeugt das printf undefiniertes Verhalten, wenn der Parameter keinen Bindestrich enthält, und womöglich solltest du das Orakel mal nach getopt befragen.

    Hi,
    danke für die rasche Hilfe. 🙂 Das Semikolon habe ich heute nicht mehr gesehen
    (zulange schon vorm PC). 🙄
    Die printf`s kommen eh heraus, waren nur zum debuggen.

    Danke
    Luis
    PS:So rasche Hilfe am Fr-Abend 👍 👍 👍 👍



  • Stimmt, getopt() hört sich gut an.
    Kannte die Funktion vorher gar nicht.
    Super Tipp. 👍 👍
    Danke
    🙂


Anmelden zum Antworten