Probleme mit ofstream...
-
Hi,
ich sitze gerade vor einem kleinen Problem. Ich habe für die FH eine Adressbuch geschrieben, nun wollte ich noch eine Funktion einbinden um die Daten zeilenweise in eine Textdatei zu schreiben. Nur erstellt er bei mir keine Textdatei.
ofstream addressfile; addressfile.open("save/adresse.txt", ios::out); addressfile << "Zeile 1" << endl; addressfile << "Zeile 2" << endl; if (!addressfile) cout << "Error"; addressfile.close();Der kann irgendwie die Datei nicht öffnen.
Vielen Dank.
Gruss
-
so geht jetzt, hatte noch was dazufügen müssen. Leider wenn ich die Textdatei öffne schreibt er das nicht untereinander.
ofstream addressfile; addressfile.open("save/adresse.txt", ios::out|ios::binary); addressfile << "Zeile 1" << endl; addressfile << "Zeile 2" << endl; if (!addressfile) cout << "Error"; addressfile.close();Dateiausgabe:
Zeile 1
Zeile 2toll wenn ich es hier einfüge dann schreibt er das untereinander. Teste es gerade mit dem Notepad.
Gibt es noch eine alternative, damit ich es mit dem Notepad richtig öffnen kann.
Danke.
-
Cyrill Roth schrieb:
addressfile.open("save/adresse.txt", ios::out|ios::binary);Mach mal das binary weg, dann klappts auch mit den richtigen Zeilenumbrüchen.
BTW, bist du mit dem Schrägstrich sicher? Das soll doch, wenn ich dich richtig verstehe, unter Windows laufen. Ist da nicht mehr der Backslash ("save\\adresse.txt"...) angesagt?
addressfile << "Zeile 1" << endl; addressfile << "Zeile 2" << endl; if (!addressfile) cout << "Error";An der Stelle erst zu prüfen, ob die Datei richtig geöffnet wurde, ist ein klein wenig zu spät.
-
schon sollte ja nur ein kurzer test sein.
Wenn ich das binary weg lasse dann bekomme ich den error.
Also der Wordpad mach das Zeilenweise...
Nur hab ich noch ne frage kann ich das irgendwie machen, das der Benutzer den dateiname bestimmen kann?
Mit dem cin.
Das mit dem "/" stimmt schon.
Funktioniert

-
komisch, jetzt lasse ich das binary weg und es geht trotzdem. Na gut.
Jetzt nur noch den Dateiname bestimmen, das wär noch gut wenn das funktionieren würde.
Sollte halt so dann aussehen "save/dateiname.txt".
-
Hallo,
Bsp: Erzeuge eine Datei mit variablem Namen:#include <iostream> #include <fstream> int main() { std::cout << "\nfilename: "; std::string fn; std::getline(std::cin, fn); std::ofstream o(fn.c_str()); // datei zum schreiben öffnen (falls sie nicht existiert, wird sie neu erzeugt). // Fehlerbehandlung, etc... return 0; }Da es sich hierbei aber um elementare Dinge handelt, empfehle ich einen Blick in das Kapitel Dateihandling o.ä. in einem Buch/Tutorial deiner Wahl :).
Gruß Caipi
-
Da ich das morgen abgebe lass ich das lieber sein mit dem der Benutzereingabe, war nur optimal, um sich ein wenig einzuschleimen

Schaue es mir morgen trotzdem mal an. Schaden kann es ja nicht.
Danke euch.

-