Parameteruebergabe bei Prog-Aufruf
-
Hallo habe folgendes Problem:
Beim Programmaufruf soll der Name der Datei in Form von datei.exe datei.dat uebergeben werden. Folgende Codeschnipsel habe ich mir zusammengesucht, komme jetzt aber nicht weiter:Vielen Dank im Voraus !
main(int argc, char *argv[]){ char *fp switch(argc) /* Kommando-Parameter ueberpruefen: 1: Dateiname fehlt, 2: Datei oeffnen, def: zuviele Parameter */ { case 1: cout<<"\n\nSie muessen die Datei als Parameter angeben (z.B. datei.exe datei.dat)!"<<endl; cout<<"___________________________________________________\n\n"<<endl; return 0; case 2: if (ofstream ausgabe(argv[1], "w") != 0) /* Wenn Dateiname existiert: Datei im Schreibmodus oeffnen */ fp = ofstream ausgabe(argv[1], "w"); else /* Wenn nicht: Programmabbruch */ { cout<<"\n\nDie Datei \"argv[1]\" existiert nicht!!! - Bitte Schreibweise ueberpruefen!!!\n\n"<<endl; cout<<"___________________________________________________\n"<<endl; return 0; } break; default: cout<<"\n\nZu viele Parameter angegeben. Syntax: datei.exe <Dateiname>\n"<<endl; cout<<"___________________________________________________\n"<<endl; return 0; } }
-
Hm,
wie war die frage ?
[ Dieser Beitrag wurde am 21.03.2003 um 10:58 Uhr von Knuddlbaer editiert. ]
-
Okay, und was willst du wissen?
Das Prog kann net funktionieren weil:
argc sagt Dir wieviel Parameter übergeben worden sind.
Wenn jetzt datei.dat übergeben wird, ist argc = 1 ...Du verstehst?
[ Dieser Beitrag wurde am 21.03.2003 um 11:04 Uhr von Legolas editiert. ]
-
Ok Problem ist geloest ! Vielen Dank !
-
Original erstellt von Legolas:
argc sagt Dir wieviel Parameter übergeben worden sind.
Wenn jetzt datei.dat übergeben wird, ist argc = 1 ...Blödsinn, argc ist immer >= 1 da der Programmname selbst ebenfalls mit ausgewertet/ gezählt wird.
probier doch mal sowas aus:
#include <iostream> int main(int argc, char *argv[]) { std::cout << argc; }
-
Du hast Recht und ich bin doof
Aber irgendwas muss es doch gebracht haben, sonst würde es jetzt ja net gehen
[ Dieser Beitrag wurde am 21.03.2003 um 11:42 Uhr von Legolas editiert. ]
-
Vielleicht hat tplehn ja "Ströme und Dateien in C++" in den FAQ gelesen, sein Code war nämlich vorher rundum furchtbar falsch.