popen - getline
-
Huhu, ich brauch nochmal eure Hilfe
Ich möchte via popen nen befehl auf der cmd ausführen.
sagen wir mal diesen printf "Hallo ich bin Klaus\nHey, ich bin Peter"also
FILE* pFile; pFile = popen("printf...","r");
Nun möchte ich die erste Zeile zwischen speichern, bearbeiten und dann die nächste holen. Das geht ganz gut mit fgetc, soll aber mit getline gemacht werden...
pFile ist vom Typ FILE*
getline will aber nen string bzw nen zeiger auf nen char array (http://www.cplusplus.com/reference/istream/istream/getline/) oder hab ich das falsch verstanden?
Habt ihr ne Idee wie man sowas umsetzten kann?
LG nippler
-
Der Weg, um einem FILE* ein stream-Interface zu verpassen, geht über den streambuf. Das kann man selber machen. Muss man aber nicht, denn man kann auch gucken, was andere gemacht haben:
-Boost Iostreams kann das. Hier: http://www.boost.org/doc/libs/1_42_0/libs/iostreams/doc/classes/file_descriptor.html
-Die libstdc++ kann das auch schon von Haus aus, als Erweiterung, die über den Sprachstandard hinaus geht. Da du popen benutzt, vermute ich auch mal, dass du auch die libstdc++ benutzt. Hier: http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-api-4.6/a00068.html