argc argv problem
-
Hallo,
dieses programm sollte in case 0 reinspringen, komischerweise ergibt kriege ich aus argv den wert 75 !?aufruf unter linux:
./test 0int main(int argc, char *argv[]) { ... if(argc == 1) U.r = 2; else{ //ERGIBT 75 !?????? switch(atoi(r)){ case 0: U.r = 0; break; case 1: U.r = 1; break; case 2: U.r = 2; break; } }
-
Tja, dann würde ich mal nachforschen, warum in der Variable "r" irgendwas mit "75" drinsteht..
-
Ich frag mich, wie du auf die Idee kommst, dass du aus argv 75 rausbekommst. Du greifst doch nichtmal auf argv zu...
-
sry hab mich verschrieben
int main(int argc, char *argv[]) { ... if(argc == 1) U.r = 2; else{ //ERGIBT 75 !?????? switch(atoi(argv[1])){ case 0: U.r = 0; break; case 1: U.r = 1; break; case 2: U.r = 2; break; } }
-
...würd jetzt einfach mal tippen der 1 parameter den du übergibst ist 75
-
Benutze einen Debugger.
-
der code, den du hier gepostet hast, hat keinen fehler. (er ist zwar unvollständig, aber fehlerlos :-)). wie genau prüfst du, was in U.r steht?
-
Und was macht atoi() mit argv[1]?
-
switch(atoi(argv[1])
pfui, das macht man nicht.
erst prüfen, ob auch wirklich ne zahl übergeben wurde.