Datei-I/0 Stream
-
Hi,
mein Name ist Johannes, komme aus Regensburg und arbeite momentan an einem TextEditor. Zur Ein-und Ausgabe von Text verwende ich die Datei-Streams von C++ (ifstream, ofstream).
Meine Frage: Wie kann ich die Datei bzw. den Dateipfad so variabel gestalten, dass ich auf verschiedene Dateien zugreifen kann? Ich habe in einem String den Dateipfad der zu öffnenden Datei gespeichert - wie kann ich nun bei der Deklaration eines Streams diesen Pfad einbinden?
Danke für eure Tipps!
Johannes
-
ifstream in(stringInDemDerPfadSteht);Reicht das?
-
Hey,
Danke für Deine schnelle Antwort! Das "Problem" ist echt einfacher als gedacht. In meinem Post hatte ich nicht erwähnt, dass ich noch zusätzlich mit Qt4 arbeite und dort keine "normalen" Strings verwende sondern QStrings, die etwas komplizierter aufgebaut sind. Über einen FileDialog erhalte ich nun den Dateipfad - ein kleines Beispiel:
QString dateipfad;
char* string;
strcpy(string, dateipfad.toLatin1());
ifstream in(string);
(wahrscheinlich würde auch ifstream in(dateipfad.toLatin1()) funktionieren...)
Aber nochmal Danke!
Johannes
-
Ist ja deine Sache wie du das machst, aber warum verwendest du nicht die QT-I/O Klassen?
Ansonsten sind QString::ascii() und QString::latin1() deine Freunde.
-
Ich kann deshalb nur schwer die IO von Qt verwenden, da mein Programm aus zwei Teilen besteht. Zum einen die GUI mit dem TextEditor und zum anderen eine "normale" C++ Klasse, die sich um die Verschlüsselung der Text-Dokumente kümmert. Da ich an dieser Klasse schon etwas länger entwickle und mit den vielen Funktionen gut zurecht komme, hab ich mom. nicht so den Elan, alles auf Qt auszurichten

-
Mach doch einen Qt bzw. Standard C++ Adapter...
-
Ich hoffe du hast deinen Code geändert und benutzt ifstream in( dateipfad.latin1() );

-
Hi,
ich verwende momentan toLatin1(). Aus dem Assistant von Qt sehe ich gerade, dass man für diesen Zweck beide Methoden verwenden kann?