Vergleich klappt nicht
-
Dann solltest du wohl mal deinen Debugger bemühen und kucken was in argv[1] drinsteht.
-
versuch mal argv[1] auszugeben ... oder meinst du vielleicht argv[0]?!
-
kann es sein, dass du einfach eine verschachtelungsstufe vergessen hast?
mach mal
if (){
....
} else if(){
...
}else{ ... }
-
Danke erstmal für die Antworten.
Ich habe den Fehler mitlerweile behoben:
elise's Tip war der Richtige. Danke dafür.
Tschau,
Prof. MAAD
-
Hab ich was anderes gesagt
-
argv[1] gibt nur nen pointer auf einen cstring zurück. D.h diesr kann nie 'i' sein. Wenn dann "i".
Daher mein lösungs vorschlag.if (argv[1][0] == 'i') //....
mfg
-
spjoe schrieb:
argv[1] gibt nur nen pointer auf einen cstring zurück. D.h diesr kann nie 'i' sein. Wenn dann "i".
Daher mein lösungs vorschlag.if (argv[1][0] == 'i') //....
mfg
Naja, das Dereferenzieren von argv[1] läuft im Prinzip auf das Gleiche 'raus...
-
@audacia
nein
-
spjoe schrieb:
@audacia
neinDoch. Du hast mich schön verunsichert
Ich hab' folgendes ausprobiert:#include <iostream> #include <conio.h> using namespace std; int main(int argc, char* argv[]) { cout << argv[1][0] << endl << *argv[1] << endl; getch (); return 0; }
Das Programm folgendermaßen gestartet:
"progname x"
gibt aus:x
xMoritz
-
-
Ringding schrieb:
spjoe schrieb:
@audacia
neinDann erklär doch mal den Unterschied!
In C gilt: (a)[0] == *(a)
Etwas ausführlicher:
argv ist vom typ char**
argv[1] gibt char* zurück
char* dereferenziert gibt char zurückMoritz