Datei auslesen und als char array ablegen
-
Hi
bin noch relativ frisch beim programmieren und komme nicht weiter.
ich möchte aus einer datei den inhalt auslesen und zur weiteren verarbeitung in ein char array speicher.fstream rf; char c, ctext[1000]; // string stext; int i; char datei[]="datei.txt"; rf.open(datei, ios::in); i=1; while(!rf.eof()) { c = rf.get(); ctext[i]=c; i++; } ctext[i]='\0'; rf.close(); // stext = ctext;danach wollte ich noch den char array in einen string umwandeln damit ich mit string funktionen in dem string nach was suchen kann.
der fehler muss wohl in zeile 14 liegen (fehler in anwendung mit speicherverletzung).
wäre über hilfe dankbar.
evtl gibt´s auch ne möglichkeit den inhalt der datei direkt als string zu speichern?grüssle
snoob
-
#include <fstream> #include <vector> // besser ein std::vector als ein Array #include <string> /* ... */ // Datei öffnen std::ifstream file_in("test.txt"); if(!file_in) { std::cerr << "Datei wurde nicht gefunden." << std::endl; return 1; } /* ... */ // z. B. Wörter einzeln einlesen std::string text; std::vector<std::string> wortweise; while(file_in >> text) { wortweise.push_back(text); } /* ... */ // Oder zeilenweise std::vector<std::string> zeilenweise; while(std::getline(file_in, text)) { zeilenweise.push_back(text); }
-
Oder auch gleich die ganze Datei in einen string:
std::string ganze_datei; std::copy (istreambuf_iterator<char> (file_in), istreambuf_iterator<char> (), back_inserter(ganze_datei) );
-
funzt super, danke!!!
jetzt weiß ich auch wie ma die vectoren sinnvoll einsetzt