Also wie das Topic schon sagt möchte ich ein File öffnen und anschließend dessen inhalt in ein String Objekt packen. (Möglichst nicht über Konstruktor da es schon vorher instanziiert wird)
Ich hab folgendes schonmal probiert:
#include
#include
#include
using namespace std;
void OpenFile()
{
string FileContent;
ifstream input("test.cfg");
while(in.eof() != true)
{
FileContent = input.get();
};
//usw. dann folgt noch main aber is unwichtig...
}
Soweit so gut, wenn ich jetzt compile und teste friert das Programm immer ein. Ich vermute dass das da eine Endlosschleife ist aber so stand es auch in MSDN das eof() den bool wert zurückgibt ob das Ende des Files erreicht ist.
Achja: Das String Objekt brauch ich um den Text besser später editieren zu können, nicht dass ihr fragt warum kein char…
Wenn ich die Sache richtig sehe, liefert eof() ein ‚int‘-artiges Ergebnis. Solange die Bedingung EOF nicht erfüllt ist, kommt also 0 zurück. Sobald EOF erreicht ist kommt irgendwas anderes, aber nicht unbedingt 1 raus [es gilt int(true) == 1].
Du hast das += vergessen - kriegst also immer nur ein Zeichen. Probier mal die test.cfg als Textfile zu erstellen (im gleichen Verzeichnis wies Programm (besser noch gebe den PFAD an!) und schreib da mit Notepad was rein. Du wirst sehen, es geht!
Zum Vorschreiber mit true != int: eof() liefert true wenn der Dateizeiger am Ende steht! Naseweis! Hier geht es nämlich um die STL für C++, da gibt es schon ein „true“ im Gegensatz zu reinem C - wo tatsaechlich ein int zurück kommt…