Ganze Datei in einer String
-
Hi,
ich müsste eine Datei (ASCII) einlesen und komplett in einem String speichern. Meine bisherige Vorgehensweise:
Zeilenweise auslesen und anhängen:std::string ganzerString;
std::ifstream file(filename.c_str());
if (file)
{
while (!file.eof())
{
std::getline(file, dummy);
ganzerString=ganzerString+dummy;
}
}Macht man das so? Gibts da keine andere Vorgehensweise?
Karl
-
In C/C++ gibt es meines Wissens nach nur die Möglichkeit. In Qt zb. gäbe es da readAll();
-
Macht man das so?
Nicht ganz, siehe: http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=eof#Answ
-
Karl Blau schrieb:
ich müsste eine Datei (ASCII) einlesen und komplett in einem String speichern.
...
Gibts da keine andere Vorgehensweise?Hallo Karl,
doch gibt es. Z.B.:#include <iostream> #include <fstream> #include <sstream> int main() { std::stringstream buf; buf << std::ifstream( "input.txt" ).rdbuf(); // Der Inhalt der Datei ist in buf.str() return 0; }oder
#include <iostream> #include <fstream> #include <string> #include <iterator> int main() { std::string str; std::copy( std::istreambuf_iterator< char >( std::ifstream( "input.txt" ) ), std::istreambuf_iterator< char >(), std::back_inserter( str ) ); return 0; }Gruß
Werner