Textdatei ind string lesen?
-
Ja supi das ist ja schon was.
Aber da stellt sich gleich eine Fragen:
ich wußte gar nicht das man gleich mit realloc loslegen kann, müßte da nicht erst ein malloc voran (wenn icht auch gut- ham we was gelernt -danke).
-
Das ist C und kein C++!
Verwende std::string und die Filestreams
-
hab da einen Fehler gemacht

alles = (char*) realloc(alles, (strlen(zeile) + 1) * sizeof(char));void *malloc(size_t size); void *realloc(void *ptr, size_t size); malloc() belegt size Byte und gibt einen Zeiger auf den belegten Speicherbereich zuruck. Der Speicher wird nicht mit Nullen beschrieben. realloc() ändert die GroBe des Speicherblocks, auf den ptr zeigt, auf size Byte. Der Inhalt bleibt unverandert bis zum Minimum von alter und neuer GroBe; neu angeforderter Speicher bleibt uninitialisiert. Wenn ptr NULL ist, ist der Aufruf aquivalent zu malloc(size); wenn die GroBe Null ist ist der Aufruf equivalent zu free(ptr). Wenn ptr nicht NULL ist, muB er von einem fruheren Aufruf von malloc(), calloc() oder realloc() zuruckgegeben worden sein.Da alles beim ersten mal NULL ist, wird es gleich initallisiert.
@ FireFlow hab ich ja geschreiben, dass es C ist
-
prima Danke ,
Die Text-Datei die ausgelesen werden soll, ist eine kleinere Datei .Gibt es nicht die Möglichkeit die Dateigröße festzustellen und komplett in einem Zug in einen Buffer zulesen?
-
-
Hey das ist gut,
so was habe ich gesucht.
Besten dank an alle.
-
Und warum schreibst du ein C-Beispiel in ein C++ Forum?
#include <fstream> #include <string> using std::string; using std::ifstream; using std::getline; int main() { ifstream in( "bla.txt" ); if( !in ) return 1; string content( "" ), tmp( "" ); while( !in.eof() ) { getline( in, tmp ); content += tmp; } }
-
Kleine Änderung:
#include <fstream> #include <string> using std::string; using std::ifstream; using std::getline; int main() { ifstream in( "bla.txt" ); if( !in ) return 1; string content( "" ), tmp( "" ); while(getline( in, tmp )) // <--- { content += tmp; } }Zu eof() siehe http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=eof#Answ
-
Warum sich mit eof herumschlagen ?
#include <iostream> #include <iomanip> #include <iterator> #include <fstream> using namespace std; int main() { string file("a.cpp"); ifstream infile(file.c_str()); if(!infile) { return false; } infile >> noskipws; string code_str; code_str.assign( istream_iterator<char>(infile),istream_iterator<char>() ); cout << code_str; return 0; }Kurt
-
Man könnte natürlich auch einfach mal dem Link den Ringding gepostet hat folgen. Aber das wäre wahrscheinlich zu einfach
