ofstream mit Pfadangabe
-
Hiho!
Ich habe ein kleines Problem bei der Ausgabe mit ofstream.ofstream druck("Druck"); druck.setf(ios::scientific); druck.precision(10);funktioniert einwandfrei.
Ich wollte aber, dass mir das Programm die Datei nicht direkt in meinem Projektordner speichert, sondern in einem Unterverzeichnis "output".
ofstream druck("/home/project/output/Druck"); druck.setf(ios::scientific); druck.precision(10);klappt auch!
Nur wollte ich das Ganze mit einem "Platzhalter" verbinden, damit das für alle zu speichernde Dateien von einem anderen Benuter nur ein einziges Mal geändert werden muss. Und zwar dachte ich mir das in der Form:
#define PATH /home/project /*....*/ ofstream druck("PATH/output/Druck"); druck.setf(ios::scientific); druck.precision(10);das klappt nämlich jetzt nicht mehr

Jemand eine Idee?
gruß
-
In einem String werden defines nicht ersetzt
Probiers doch mal so:const string PATH = "/home/project"; ofstream druck( PATH + "/output/Druck" );
-
Badestrand schrieb:
In einem String werden defines nicht ersetzt
Probiers doch mal so:const string PATH = "/home/project"; ofstream druck( PATH + "/output/Druck" );Wobei du darauf noch 'c_str()' anwenden müsstest:
ofstream druck( (PATH+"/output/Druck").c_str());Wenn der Ausgangspfad beim Compilieren bereits fest ist, klappt es auch im Präprozessor - vorausgesetzt man macht es richtig:
#define PATH "/home/project" ofstream druck(PATH "/output/Druck");(das funktioniert allerdings nur mit String-Literalen, nicht mit char*/std::string Variablen)
-
Vielen Dank! Klappt jetzt so wie ich mir das vorgestellt hab
