argv in ifstram übergeben
-
Da ändert sich leider nichts.
mfg
-
Du kannst im Projekt unter debug Aufrufparameter angeben und das working directory festlegen.
-
Weiterhin in der cmd:
Error: Failed opening fileÜber F5 mit übergebenen Parameter:
0mfg
-
So, ich habe jetzt dem Debugger auch de kompletten Pfad gegeben. jetzt kommt bei beiden:
Error: Failed opening filemfg
-
Dann steht die Datei nicht dort oder in argv[1] steht nicht der Pfad (weil er z.B. Leerzeichen enthält).
-
Habe das ganze jetzt nochmal neu gemacht.
Dabei habe ich das *.txt Dokument wo anders hingetan. (Indem Pfad waren leerstellen )und n habe ich mit n initialisiert:
int number(char *argv[]){ ifstream inTxt(argv[1]); if (!inTxt) throw runtime_error("Failed opening file"); int n=0; //HIER!!!!! if (!inTxt >> n){ inTxt.close(); //todo: RAII throw runtime_error("Failed reading file"); } inTxt.close(); //todo: RAII return n; }
output:
0Bitte helft mir
mfg
-
und n habe ich mit n initialisiert
natürlich mit 0.
mfg
-
Und was steht in argv[1]?
RAII macht der stream ganz alleine, ist ist weder was todo noch ist ein close notwendig.
-
manni66 schrieb:
RAII macht der stream ganz alleine, ist ist weder was todo noch ist ein close notwendig.
Das war auch glaub ich eher ein Scherz von nwp3.
-
So, ich habe mir argv[1] ausgeben lassen.
Ich hätte dem Debugger den Pfad ohne abschließendes Semikolon angeben müssen.DANKE für eure Hilfe!!
Es funzt
-
Tim06TR schrieb:
nwp3 schrieb:
Weiterhin ist Visual Studio etwas komisch. Wenn du die exe über Visual Studio startest, dann ist der aktuelle Ordner nicht der exe-Ordner, sondern der Projektordner.
Das hat den Grund, dass sich Release und Debug das gleiche working_set_directory teilen. Ich finde das praktisch.
Der Begriff "working_set_directory" ist mir nicht bekannt.
Das was du meinst heisst "working directory".
Und dann gibt's noch den Begriff "working set" (Begriffserklärung bitte bei Interesse selbst ergoogeln).
Aber "working set directory" gibt's - behaupte ich jetzt mal - nicht.