ofstream ifstream - Leerzeichenproblem
-
Ich habe in eine Datei mittels
out << str << endl;zeilenweise Daten gesichert. Manchmal enthält str nichts, was dann in der Textdatei zu einer leeren Zeile führt. Das Notepad zeigts auch genauso an.
Will ich den Inhalt wieder mit
in >> str;einlesen, habe ich das Problem, dass die Leerzeilen ignoriert werden, das führt dann aber natürlich zu Problemen.
Wie kann ich erreichen, dass beim Einlesen einer Leerzeile str ein "" zugewiesen wird und "in" nicht bis zum nächsten Zeichen weiterliest?
-
Hallo,
Hast du dir schonmal die Methode getline() bzw. für std::strings die Funktion getline() angeschaut?Gruß, Caipi
-
ich probiers mal, danke.
-
Hier noch ein beispiel wie WhiteSpaces nicht übersprungen werden ...
#include <iostream> #include <fstream> #include <iterator> #include <list> #include <string> using namespace std; int main() { /** * Container speicher die eingelesen Werte zwischen */ list<char> v; /** * Werte via Streamiterator auf Filestream aus Datei (test.txt) * einlesen. WS werden nicht übersprungen */ ifstream is("test.txt"); if (!is) return EXIT_SUCCESS; is.unsetf(ios_base::skipws); // !!! istream_iterator<char> ii(is); istream_iterator<char> eos; copy(ii, eos, back_inserter(v)); /** * Eingelesene Zeichen per ostream_iterator auf die Standardausgabe * schreiben */ copy(v.begin(), v.end() , ostream_iterator<char>(cout)); }