file speichern und laden
-
Ich würde die Datei in Bereiche aufteilen und dafür Programmstrukturen bereitstellen, z.b. so:
struct Kontoverwaltung { int kontostand; // eventuell float oder double :D vector <string> buchungsvorgang; time_t letzter_buchungsvorgang; };
Ein Buchungsvorgang könnte in einer Zeile stehen, da sind der Fantasie keine Grenzen gesetzt ...
-
Danke aber das mit vector chekce ich net. ich mach das jetzt sso er schreibt einfach immer in die log datei und wenn man logclear eingibt dann wird die log gelöscht. aber 1 sachen weiß ich noch net. und zwar das ganze auslesen egal wie groß und wie viele leers und zeilenumbrüche wie schafft man dies?
-
Ach ja noch was. ich ermittele per abfrage die kontonummer und ich möchte die datei dann so nenen wie die kontonummer ist, aber ich habe es so versucht aber es klappt net
void erstesmal() { cout << "Da das ihr erstes mal ist wo sie dieses Programm" << endl << "ausführen müssen sie ihr Kontoanlegen" << endl; cout << "Bitte geben Sie ihre Kontonummer ein :" << endl; cin >> kontonummer; cout << endl << " Bitte geben Sie nun den Inhaber mit Vor- und Nachname ein :" << endl; cin >> vorname >> nachname; cout << endl << "Bitte geben Sie jetzt noch ihren aktuellen Kontostand ein :" << endl; cin >> kontostand; ofstream out( kontonummer + ".kt"); }
die variablen sind oben definiert also nicht denken dass die net ddefiniert sind
-
Zum Einlesen der Zeilen einer Textdatei in einen Vector findest du hier ein Beispiel:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-246289-and-start-is-0.html
Fürs Verständnis und für kleinere Dateien ( < 5 - 10 MB ) reicht das erste Beispiel von einles0r völlig aus. Schwupp - hast du alle Zeilen der Datei im Vector.
-
und schau mal ich mach ein cin eingabe und das was ehr eingibt so soll auch die datei heißen aber mit meine versuchen bekomm ich nur errors wie schafft man das??
-
Wenn du deinen Versuch zeigen würdest, wäre es hilfreich. Sonst bekommst du u.u. Lösungen, die nicht mit deinem Ansatz kompatibel sind.
Ansonsten würd ich es so machen:
ofstream out; while ( out.is_open() == false ) { string s; cout << "Enter a filename: "; cin >> s; out.open (s.c_str()); if ( out.is_open() == false ) cout << "Can't open " << s << " for writing." << endl; } // Und nun schreibseln ...
-
vllt. noch nen clear rein:
if ( out.is_open() == false ) { cout << "Can't open " << s << " for writing." << endl; out.clear(); // <-- update! }
-
cout << "Da das ihr erstes mal ist wo sie dieses Programm" << endl << "ausführen müssen sie ihr Kontoanlegen" << endl; cout << "Bitte geben Sie ihre Kontonummer ein :" << endl; cin >> kontonummer; cout << endl << " Bitte geben Sie nun den Inhaber mit Vor- und Nachname ein :" << endl; cin >> vorname >> nachname; cout << endl << "Bitte geben Sie jetzt noch ihren aktuellen Kontostand ein :" << endl; cin >> kontostand; ofstream out( kontonummer + ".kt");
das war mein versuch. aber wie kann man dann die ganze datei einlesen ich hätte die dann nämlich eingelessenn und dann einen 2 sstring und dann erst den neuen und dann den alten reingeschrieben
-
Dein Fehler wird sein, dass kontonummer kein String, sondern ein int/uint/unsigned long/oder so ist.
Such dich mal schlau, wie man eine Zahl in nen string umwandelt.
Eine Lösung ist mit stringstream.std::string nummer; std::stringstream stream; uint kontonummer = 250333654; stream << kontonummer; nummer = stream.str(); std::string filename = nummer + ".kto";
Wenn es das nicht ist, solltest du noch die Fehlermeldungen posten. Eigentlich hätte das gleich im ersten Post gemacht werden sollen, bitte in Zukunft also mitposten, um dieses hiterhergerenne zu sparen.
-
ok.danke.