2016-04-13 17 views
-1

Um mein Programm, das Sie eingeben müssen laufen:Fehler beim Abrufen der Befehlszeilenparameter

(program name) -s (a number) -f (the file name) 

Das Problem, das ich stecke, ist, dass der Dateiname in string ist und die Befehlsparameter sind in char.

Hier ist mein Code, so dass ich mein Problem deutlich illustrieren:

if(argc==1){ 
    cout << "Please Enter it in the Form of (prog -s (number of state) -f (file name)\n"; 
} 
if(argc==2){ 
    cout << "Please Enter it in the Form of (prog -s (number of state) -f (file name)\n"; 
} 
if(argc==3){ 
    cout << "Please Enter it in the Form of (prog -s (number of state) -f (file name)\n"; 
} 
if(argc==4){ 
    cout << "Please Enter it in the Form of (prog -s (number of state) -f (file name)\n"; 
} 
if(argc==5){ 

     if((argv[1][0]=='-'&& argv[1][1]=='s')&&(argv[3][0]=='-'&& argv[3][1]=='f')){ 
     int x; 
     x=argv[2][0]-48; 
     state *array; 
     array= create_states(x); 

     ifstream File; 
     File.open(argv[4][0]); 

Auf dieser Linie:

file.open(argc[4][0]); 

ich einen Fehler.

+2

'if (code.Formatting() == Formatierungstypen :: VeryBad) std :: cout <<" Bitte formatieren Sie Ihren Code! " << std :: endl; ' – ForceBru

+0

Entschuldigung, ich habe es bearbeitet und als ich mit der Bearbeitung fertig war sagte es, dass jemand es bereits bearbeitet hat, für den ich dankbar bin. – pnewbie

Antwort

0

es sein sollte:

ifstream File; 
    File.open(argv[4]); 

Außerdem, wenn der Dateipfad Leerzeichen doppelte Anführungszeichen verwenden enthält.

+0

danke, das war ein törichter Fehler. – pnewbie

+0

@pnewbie passiert mit uns allen :) – niceman

Verwandte Themen