Text aus Datei in String
-
Hallo
Wie kann man einen ganzen Text aus einer Datei in einen String kopieren?
Habe nur Zeichen und Zeilenweises einlesen gefunden.
-
Man könnte ja versuchen, alle Zeilen an einen String anzuhängen

-
Geht das nicht leichter? Einfach direkt den ganzen Buffer umkopieren?
-
blubb, so gehts
std::ifstream file; file.open( filename.c_str(), std::ios_base::in ); std::string text; std::stringstream ss_text; if( file.is_open() ) { std::streambuf* buf = file.rdbuf(); ss_text << buf; text = ss_text.str(); }Ist das sauber?
-
string content(ifstream_iterator<char>(ifstream("Dateiname")), ifstream_iterator<char>());Ungetestet.
-
Texter, so wie Du es gemacht hast, geht es auch. Sauber ist das auch.
-
Danke. Ohne iterieren gehts wohl nicht. (operator << macht wohl auch nichts anderes )
Hab versucht den streambuf vom filestream in den vom stringstream umzuwandeln, aber das schluckt er nicht. Wär wohl am effektivsten, da nur Zeiger kopiert werden würden.
-
also ich hab das letztens mit der push_back variante gemacht
ifstream in; in.open (my_source.c_str(), ios_base::in); string text; char current; current = in.get(); while (!in.eof) { text.push_back(current); current = in.get(); }imho eine einfache und doch schnelle variante
greets
-
-
ifstream file( filename.c_str() ); try { while( file.good() ) { //mit file rumhampeln } } catch( /*bla und so*/ ) { // hampelmänner auffangen } file.close();so gut()?