ifstream.open(...) Akzeptiert nur absolute Pfade?
-
Versuch mal folgendes:
Start->Ausführen dort "cmd" eingeben.
Dann gibst du ein:
cd D:<ENTER>
cd Raytracing\debug<ENTER>
"Dein Programmname ohne die Anführungszeichen"<ENTER>Dann sollte es gehen, wenn nicht würde ich vermuten, dass du eine Bibliothek dazugelinkt hast die an dem Current Directory rumspielt.
-
was die 100% CPU auslastung macht, findest du am einfachsten mit nem debugger raus
-
int main(int argc,char *argv[])
in argv[0] steht der pfad zum ausgeführten programm,
daraus kannst du dir auch das directory rausbasteln ...
-
das hängt auch wieder vom System ab (wenn du das Programm von der Kommandozeile aus startest, könnte dort auch der Name so stehen, wie du ihn angegeben hast - oder du bekommst gar einen Leerstring übergeben)
-
Habe gesehen, dass in der Titelleiste des Kommandozeilenfensters der Pfad auch steht. Wenn er stimmt ist er so, wie er sein soll. Das Problem mit
f.open("building.dat", ios::in);
besteht aber weiterhin. Vielleicht sollte ich mal versuchen, eine andere Methode zum Einlesen zu benutzen.
Christoph
-
habs jetzt mal mit
ifstream infile("building.dat"); while (!infile.eof()) { infile >> sTempline; } infile.close();
versucht. Derselbe Mist.
Und mit
ifstream infile("D:\\Raytracing\\debug\\building.dat");
klappt super.
Und die Eingabeaufforderung zeigt immer schön genau das Verzeichnis an, in dem die exe und auch die building.dat drin ist. So ein scheissssssss!!!!!!
-
Versuchs mal mit
ifstream infile("./building.dat");
Außerdem solltest du aus Gründen der Plattformunabhängigkeit immer Slashes statt Backslashes verwenden...
Grüße
Martin
-
Funktioniert leider auch nicht Irgendwie ist da der Wurm drin.
Aber danke.
-
Wie startest du die Eingabeaufforderung?
-
Ich starte sie direkt über das Ausführen von Visual Studio. Aber das Problem hat sich endlich erledigt. Es lag daran, dass die "building.dat" auf einem Linux-System erstellt worden ist, was ich nicht wusste. Und irgendwie hat er da wohl etwas anders interpretiert oder so. naja
Aber an alle: Danke für die Hilfe!