FILE -> fstream
-
Hallo zusammen,
Diese Zeile gibt mir einen FILE Pointer zurück.
fp = popen(command.c_str(),"r");ich möchte aber gerne getline() nutzen und darum diesen FILE Handle zu einem fstream konvertieren.
Über die Suchmaschine habe ich diese Seite (http://www.codeproject.com/file/handles.asp) gefunden, leider hat der dort beschriebene Weg mir nicht geholfen.
Hat mir jemand einen Tipp wie ich weiter komme?
Danke & Gruss
compaqt
-
Hallo
Gar nicht erst einen File-Handle verwenden sondern gleich von anfang an std::fstream?
bis bald
akari
-
wie würde das für mein Beispiel aussehen?
-
Hallo
#include <fstream> ... std::ifstream file(command.c_str());Siehe auch die FAQ hier im C++ Forum, den Thread "Dateien und Ströme"
bis bald
akari
-
Im Konstruktor des ifstream muss ich ja den Pfad zur Datei angeben. In command.c_str() ist aber mein Befehl, der auf Unix mit popen ausgeführt werden soll. Was ich möchte ist auf die durch popen erstellte Pipe mit getline zugreifen. Wie bereits geschrieben gibt aber popen ein FILE Handle zurück und kein fstream.
-
Hi, du könntest fp komplett in nen Buffer lesen und es in einen stringstream reinstecken, dann könntest du darauf wie gewünscht arbeiten.
-
Im Zweifelsfall könntest du dir einen eigene Stream-Klasse schreiben die intern mit FILE arbeitet. Wie man sowas macht findest du z.B. auf der Website von Josuttis.
-
lolz schrieb:
Im Zweifelsfall könntest du dir einen eigene Stream-Klasse schreiben die intern mit FILE arbeitet. Wie man sowas macht findest du z.B. auf der Website von Josuttis.
keine stream Klasse, nur einen buffer.