getopt c++ HELP!!!
-
hiho
ich komm nicht weiter, irgendwie funtionktioniert das net vielleicht ich weiß leider auch nicht woran es liegt. kann mir bitte jemand helfen? hier der code:#include <unistd.h> #include <iostream> #include <fstream> #include <string> using namespace std; int main(int argc, char *argv[]) { int opt; string html_dateiname, img_pfad; int lower_bound, upper_bound; while((opt = getopt(argc, argv, "o:c:p:h:")) != -1) { switch(opt) { case 'o': html_dateiname = optarg; //optarg enthält das Argument zur gerade //behandelten Option break; case 'c': sscanf(optarg, "%d,%d", &lower_bound, &upper_bound); break; case 'p': img_pfad = optarg; break; case 'h': printf ("HILFE ..."); } exit(0); } //weiterer programmcode. }
so far tarikon
-
Nimm doch mal das "exit(0)" aus der while-Schleife!
Dann sollte es besser gehenMartin
-
nö leider passiert genauso wenig
-
was funktioniert denn nicht? Beschreib das Problem mal
-
ich will halt in der shell das programm z.B so ausführen:
./programmname -h
dann sollte eigentlich z.B. die "HILFE" angezeigt werden im compiler läuft es ohne fehler durch aber ich versteh net warum das mit dem getopt nicht klappt
-
weil du verlangst, dass -h noch eine Option bekommt, lass das : nach h weg
-
hmpf nö
-
also mein compiler ( g++ v-9.x ) meckert beim compilieren schon rum: stdio.h fehlt. nachdem ich die eingefuegt hatte, und den ":" nach dem "h" weggemacht hatte lief das ganze einwandfrei. das exit( 0 ) hab ich nat. auch aus der schleife entfernt.
das ergebnis sah so aus:
cypoc@greendale:~> ./getopt -h
HILFE...cypoc@greendale:~>kann es sein, dass es bei dir genauso aussieht, und dass du nur "HILFE..." uebersehen hast?!
mach mal aus deinem printf folgendes: printf( "HILFE...\r\n" );
dann sollte das ganze in einer eigenen zeile stehen.wenn es das auch nicht war, weiss ich auch nicht...
ciao, cypoc