datei öffnen, speichern
-
servus hab n kleines problem
muss ein telefonbuch speichern und öffnen können.
da ich aber n noob auf dem bereich bin, bräuchte ich mal hilfe.#include <iostream.h> #include <conio.h> #include <stdlib.h> #include <fstream.h> #define MAX 50 //using namespace std; int i; int y; char x; char ende; //char outfl; struct adres{ char nachname[MAX]; char vorname[MAX]; char strasse[MAX]; char hausnummer[6]; char PLZ[6]; char wohnort[MAX]; char geschlecht[MAX]; char geburtsdatum[11]; char geburtsort[MAX]; char nationalitaet[MAX]; char beruf[MAX]; }adressen; void ausgabe(struct adres x) { cout<<"\n\n\n sie gaben ein:\n"<<endl; cout<<"nachname.......:"<<x.nachname<<endl; cout<<"vorname........:"<<x.vorname<<endl; cout<<"strasse........:"<<x.strasse<<endl; cout<<"hausnummer.....:"<<x.hausnummer<<endl; cout<<"PLZ............:"<<x.PLZ<<endl; cout<<"wohnort........:"<<x.wohnort<<endl; cout<<"geschlecht.....:"<<x.geschlecht<<endl; cout<<"geburtsdatum...:"<<x.geburtsdatum<<endl; cout<<"geburtsort.....:"<<x.geburtsort<<endl; cout<<"nationalitaet..:"<<x.nationalitaet<<endl; cout<<"beruf..........:"<<x.beruf<<endl; } int main() { int auswahl; do{ cout<<"\nwahlen sie die option\n"; cout<<"1.neue eingabe\n"; cout<<"2.datei offnen\n"; cout<<"3.datei speichern\n\n"; cin>>auswahl; switch(auswahl) { case 1: cout<<"nachname :" ; cin>>adressen.nachname, MAX; cout<<"vorname :" ; cin>>adressen.vorname, MAX; cout<<"strasse :"; cin>>adressen.strasse, MAX; cout<<"hausnummer :"; cin>>adressen.hausnummer; cout<<"PLZ :" ; cin>>adressen.PLZ; cout<<"wohnort :"; cin>>adressen.wohnort, MAX; cout<<"geschlecht :"; cin>>adressen.geschlecht, MAX; cout<<"geburtsdatum :"; cin>>adressen.geburtsdatum, MAX; cout<<"geburtsort :"; cin>>adressen.geburtsort, MAX; cout<<"nationalitaet :"; cin>>adressen.nationalitaet, MAX; cout<<"beruf :"; cin>>adressen.beruf, MAX; ausgabe(adressen); break; case 2: // cout<<"funktion noch nicht fertiggestellt\n"; ofstream outfl("ausgabe.dat", ios::out); if(outfl==NULL) { cerr<<"\ndatei konnte net geoffnet werden"; exit(1); } cout<<ausgabe<<endl; /* ifstream file("input.dat"); if(file==0) { cerr<<"\nDatei konnte net geoffnet werden"; exit(1); }*/ break; case 3: // cout<<"funktion noch nicht fertiggestellt\n"; // ifstream infl("eingabe.dat", ios::in); break; default:cout<<"bitte zwischen 1 und 3 waehlen \n"; } cout<<"beenden? (j/n)"; cin>>x; } while(x!='j'); return 0; }
müsste das ganze irgendwie mit hilfe von ifstream und ofstream machen!
-
Morgen,
schau dir mal folgenden FAQ-Beitrag von Hume an:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39469.htmlmfg
v R
-
servus
realisticer danke für die schnelle antwort, sobald ich zuhaus bin werd ich es auf jeden fall ausprobierennebenbei noch erwähnt, wie kann ich z.b mehrere daten verwalten, dass heisst wenn ich z.b daten von 2 personen eingeb und danach diese beiden eingaben dann auf dem bildschirm bekomm?
-
Tag,
dazu kannst du dir std::vector<> anschauen. Damit kannst du mehrere Adressen
speichern:http://www.sgi.com/tech/stl/Vector.html
mfg
v R
-
hab jetzt folgendes
D:\c++\1\structuren.cpp(124) : error C2360: Initialisierung von 'File' durch 'case'-Marke übersprungen
D:\c++\1\structuren.cpp(80) : Siehe Deklaration von 'File'
D:\c++\1\structuren.cpp(140) : error C2360: Initialisierung von 'outfl' durch 'case'-Marke übersprungen
D:\c++\1\structuren.cpp(126) : Siehe Deklaration von 'outfl'
D:\c++\1\structuren.cpp(140) : error C2360: Initialisierung von 'File' durch 'case'-Marke übersprungen
D:\c++\1\structuren.cpp(80) : Siehe Deklaration von 'File'
D:\c++\1\structuren.cpp(144) : error C2361: Initialisierung von 'outfl' durch 'default'-Marke übersprungen
D:\c++\1\structuren.cpp(126) : Siehe Deklaration von 'outfl'
D:\c++\1\structuren.cpp(144) : error C2361: Initialisierung von 'File' durch 'default'-Marke übersprungen
D:\c++\1\structuren.cpp(80) : Siehe Deklaration von 'File'
Fehler beim Ausführen von cl.exe.structuren.obj - 5 Fehler, 0 Warnung(en)
hee???
-
Wenn du Variablen in einer Case-Anweisung erstellst, dann musst du einen neuen
Block oeffnen:switch(cond) { case cond_1: { int x(0); } break; }
mfg
v R
-
hi, ich weiß nich, ob du das prob schon gelöst hast, wenn ja is toll, wenn nein dann kann dir das ja vielleicht weiterhelfen:
#include <fstream> void speichern(CHARA s) { ofstream speicher ("save.sav", ios::binary); if(speicher==NULL) { // cout << "Ungueltig" << endl; return; } speicher.write ((char*) &s, sizeof(s)); speicher.close(); } void laden(CHARA &s) { ifstream speicher ("save.sav", ios::binary); if(speicher==NULL) { // cout << "Ungueltig" << endl; return; } speicher.read ((char*) &s, sizeof(s)); speicher.close(); }
CHARA ist ne Klasse, die ich speicher, beim laden brauch man natürlich ne referenz.
-
hab ich das jetzt richtig verstanden, dass ich unter case 2: laden();
und unter case 3: speichern();
schreiben soll, dann wird auf die funktionen automatisch zugegriffen.nun ich bekomm jetzt aber den folgenden fehler
Kompilierung läuft...
structuren.cpp
D:\c++\1\structuren.cpp(28) : error C2027: Verwendung des undefinierten Typs "CHARA"
D:\c++\1\structuren.cpp(19) : Siehe Deklaration von 'CHARA'
D:\c++\1\structuren.cpp(43) : error C2027: Verwendung des undefinierten Typs "CHARA"
D:\c++\1\structuren.cpp(19) : Siehe Deklaration von 'CHARA'
D:\c++\1\structuren.cpp(151) : error C2660: 'laden' : Funktion akzeptiert keine 0 Parameter
D:\c++\1\structuren.cpp(156) : error C2660: 'speichern' : Funktion akzeptiert keine 0 Parameter
Fehler beim Ausführen von cl.exe.structuren.obj - 4 Fehler, 0 Warnung(en)