file speichern und laden
-
ok danke.hast du vielleicht nochein link zur der referenz von ofstream denn ich check dat noch net ganz mit demr speichern und ladne
-
Ich habe sie ja in meinem ersten Post verlinkt. Die Referenz da ist recht gut.
-
http://www.willemer.de/informatik/cpp/fileop.htm
http://w3studi.informatik.uni-stuttgart.de/~bischowg/languages/C++/CPPFileHandling.htmlAnsonsten mal googeln.
-
Also bei dem \1:
#include <iostream> using namespace std; int main() { cout << "Hallo"<<endl; ofstream out ( "name.txt" ); out << "irgendein name"; system("PAUSE"); return 0; }
kommt der error:
variable std::ofstream out hast initializer but incomplete type??
-
#include <fstream>
Den Header brauchst du schon.
-
Wie schaffe ich es also cih mache so nen kleines programm bei dem man sein kontoverwalten kann. ich habe scho den anfang aber wie mache es dass man quasi einen log schreibt wann was abegbucht wurde und das dann in einer datei speicher und wenn man dann zum beispiel ein gibt log dann zeigt es die datei and und wenn man zum beispiel was in die log einfügt dann soll es ganz oben stehen mit datum davor und dann was gemacht wurde + oder minus. Einer nen tipp für mich wie man die ganze log in einen stream speichert??
-
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.