Gesamten Datei-Inhalt in String?
-
KasF schrieb:
lolz schrieb:
Aber besser wäre:
string fileText((istreambuf_iterator<char>(file)),istreambuf_iterator<char>());Wenn du jetzt nen cout << filetext machen würdest käme 0 oder 1 oder so raus.
Ne, lolz hat doch extra Klammern um den ersten Parameter gesetzt, die um einen Typ nicht zulässig wären.
-
Oh, sorry habe die Klammern nicht gesehen ...
-
pixelflat schrieb:
Ah - verstanden! Schön erklärt...
@...
Ist bei getline der 3. Paramter nicht das Zeichen, bis zu dem eingelesen wird?exakt! und das soll genau das Dateiende-Zeichen sein. aber wie gesagt da gabs im C forum nen thread "Datei operationen" hiess der glaube ich. da gings 5 seiten nur um das EOF gequatsche und anscheinend is der cast, also der dritte Parameter, in der Form nich so das wahre.
-
Hallo,
ich hab hier noch ein Problem.Wie kann ich anstatt des Dateinamens, einen String verwenden?
string pfad; getline(cin, pfad); ifstream file(pfad); string fileText((istreambuf_iterator<char>(file)),istreambuf_iterator<char>());So funktionierts anscheinend nicht. -.-
//Edit
Wenn ich aus dem String "pfad" ein Char-Array mache, funktionierts zwar, aber das Programm bricht dann später einfach ab...//Edit
Ok, das mit dem Abbrechen lag an einer falschen Deklaration des Char-Arrays.
Kann ich in ein Char-Array auch eine Zeile (also incl. Leerzeichen) einlesen, wie bei getline?
Bei cin >> pfad; wird ja nur ein Wort (bis zum LZ) eingelesen.
-
-
std::string file_path; std::getline(std::cin, file_path); std::ifstream file_stream(file_path.c_str(), std::ios::in); if (!file_stream) return false; std::string file_content((std::istreambuf_iterator<char>(file_stream)), std::istreambuf_iterator<char>()); file_stream.close();
-
ifstream file(pfad.c_str());
-
@KasF:
Einfach perfekt!
-
Nochmal zur eigentlichen Frage. Um eine Datei einzulesen kann man den relativ unbekannten operator<< (std::ostream&, std::streabuf*) verwenden:
std::ifstream datei(datename); std::ostringstream s; s << datei.rdbuf(); std::string meinDateiinhalt = s.str();
-
tntnet schrieb:
Nochmal zur eigentlichen Frage. Um eine Datei einzulesen kann man den relativ unbekannten operator<< (std::ostream&, std::streabuf*) verwenden:
std::ifstream datei(datename); std::ostringstream s; s << datei.rdbuf(); std::string meinDateiinhalt = s.str();War bis dato auch mein bevorzugte Variante für sowas. Aber anders habe ich einen stringstream gespart

-
Also, da ich jetzt mit deiner Methode (KasF) die Datei auslese...
Kann ich so auch in die Datei schreiben?
-
pixelflat schrieb:
Also, da ich jetzt mit deiner Methode (KasF) die Datei auslese...
Kann ich so auch in die Datei schreiben?
ofstream outfile("...txt"); copy(mystring.begin(),mystring.end(),ostream_iterator<char>(outfile));