godofkills
Lt. Commander
- Registriert
- Dez. 2009
- Beiträge
- 1.997
Edit: Es handelt sich um c/c++!
Hallo, habe ein kleines Problem.
Und zwar soll ich eine verkette liste erstellen. was ich auch nach meiner meinung gemacht habe:
head=NULL;
char w;
do
{
struct strvab *p;
p=(struct strvab *)malloc(sizeof(struct strvab));
system("cls");
cout<<"Bitte geben Sie den Vornamen ein: ";
cin>>p->vname;
cout<<"Bitte geben Sie den Namen ein: ";
cin>>p->nname;
cout<<"Bitte geben Sie den Geburtstag ein: ";
cin>>p->gdatum;
cout<<"Bitte geben Sie die Strasse ein: ";
cin>>p->strasse;
cout<<"Bitte geben Sie die Hausnummer ein: ";
cin>>p->hausnummer;
cout<<"Bitte geben Sie die PLZ ein: ";
cin>>p->plz;
cout<<"Bitte geben Sie den Ort ein: ";
cin>>p->ort;
cout<<"Bitte geben Sie die Telefonnummer ein: ";
cin>>p->telefon;
cout<<"Bitte geben Sie die e-mail Adresse ein: ";
cin>>p->email;
cout<<"Bitte geben Sie die Handy Nummer ein: ";
cin>>p->handy;
if(head==NULL)
{
head=p;
}
ofstream datei("Adressen.txt", ios::app);
datei<<endl;
datei<<p->vname<<" "<<p->nname<<" "<<p->gdatum<<" "<<p->strasse<<" "<<p->hausnummer<<" "<<p->plz<<" "<<p->ort<<" "<<p->telefon<<" "<<p->email<<" "<<p->handy;
datei<<endl;
datei.close();
cout<<"Wollen Sie aufhören j/n";
cin>>w;
}while(w=='n');
}
so und nun geht es zum auslesen was wie folgt aussieht:
ausgabe() //ausgabe
{
head=NULL;
int anz=0,x;
struct strvab *p;
ifstream aus_datei("Adressen.txt");
cout<<"\t\tAusgabe der gespeicherte Eintr\x84 \bge\n\n";
while (!aus_datei.eof())
{
p=(struct strvab *)malloc(sizeof(struct strvab));
aus_datei >> p->vname;
aus_datei >> p->nname;
aus_datei >> p->gdatum;
aus_datei >> p->strasse;
aus_datei >> p->hausnummer;
aus_datei >> p->plz;
aus_datei >> p->ort;
aus_datei >> p->telefon;
aus_datei >> p->email;
aus_datei >> p->handy;
if(head==NULL)
{
head=p;
}
p=p->next;
anz++;
}
p=head;
for(x=0;x<=anz;x++)
{
cout<<"Vorname: "<< p->vname;
cout<<endl;
cout<<"Nachname: "<< p->nname;
cout<<endl;
cout<<"Geburtstag: "<< p->gdatum;
cout<<endl;
cout<<"Strasse: "<<p->strasse;
cout<<endl;
cout<<"Hausnummer: "<< p->hausnummer;
cout<<endl;
cout<<"PLZ: "<<p->plz;
cout<<endl;
cout<<"Ort: "<< p->ort;
cout<<endl;
cout<<"Telefon Nummer: "<<p->telefon;
cout<<endl;
cout<<"e-mail: "<< p->email;
cout<<endl;
cout<<"Handy Nummer: "<<p->handy;
cout<<endl;
cout<<endl;
cout<<endl;
p=p->next;
}
}
nur kommt das eine zugriffsverletzung als meldung. also denk ich das es den zeiger nicht gibt auf den ich da zeige. sehe aber trotzdem nicht mein fehler
Hallo, habe ein kleines Problem.
Und zwar soll ich eine verkette liste erstellen. was ich auch nach meiner meinung gemacht habe:
head=NULL;
char w;
do
{
struct strvab *p;
p=(struct strvab *)malloc(sizeof(struct strvab));
system("cls");
cout<<"Bitte geben Sie den Vornamen ein: ";
cin>>p->vname;
cout<<"Bitte geben Sie den Namen ein: ";
cin>>p->nname;
cout<<"Bitte geben Sie den Geburtstag ein: ";
cin>>p->gdatum;
cout<<"Bitte geben Sie die Strasse ein: ";
cin>>p->strasse;
cout<<"Bitte geben Sie die Hausnummer ein: ";
cin>>p->hausnummer;
cout<<"Bitte geben Sie die PLZ ein: ";
cin>>p->plz;
cout<<"Bitte geben Sie den Ort ein: ";
cin>>p->ort;
cout<<"Bitte geben Sie die Telefonnummer ein: ";
cin>>p->telefon;
cout<<"Bitte geben Sie die e-mail Adresse ein: ";
cin>>p->email;
cout<<"Bitte geben Sie die Handy Nummer ein: ";
cin>>p->handy;
if(head==NULL)
{
head=p;
}
ofstream datei("Adressen.txt", ios::app);
datei<<endl;
datei<<p->vname<<" "<<p->nname<<" "<<p->gdatum<<" "<<p->strasse<<" "<<p->hausnummer<<" "<<p->plz<<" "<<p->ort<<" "<<p->telefon<<" "<<p->email<<" "<<p->handy;
datei<<endl;
datei.close();
cout<<"Wollen Sie aufhören j/n";
cin>>w;
}while(w=='n');
}
so und nun geht es zum auslesen was wie folgt aussieht:
ausgabe() //ausgabe
{
head=NULL;
int anz=0,x;
struct strvab *p;
ifstream aus_datei("Adressen.txt");
cout<<"\t\tAusgabe der gespeicherte Eintr\x84 \bge\n\n";
while (!aus_datei.eof())
{
p=(struct strvab *)malloc(sizeof(struct strvab));
aus_datei >> p->vname;
aus_datei >> p->nname;
aus_datei >> p->gdatum;
aus_datei >> p->strasse;
aus_datei >> p->hausnummer;
aus_datei >> p->plz;
aus_datei >> p->ort;
aus_datei >> p->telefon;
aus_datei >> p->email;
aus_datei >> p->handy;
if(head==NULL)
{
head=p;
}
p=p->next;
anz++;
}
p=head;
for(x=0;x<=anz;x++)
{
cout<<"Vorname: "<< p->vname;
cout<<endl;
cout<<"Nachname: "<< p->nname;
cout<<endl;
cout<<"Geburtstag: "<< p->gdatum;
cout<<endl;
cout<<"Strasse: "<<p->strasse;
cout<<endl;
cout<<"Hausnummer: "<< p->hausnummer;
cout<<endl;
cout<<"PLZ: "<<p->plz;
cout<<endl;
cout<<"Ort: "<< p->ort;
cout<<endl;
cout<<"Telefon Nummer: "<<p->telefon;
cout<<endl;
cout<<"e-mail: "<< p->email;
cout<<endl;
cout<<"Handy Nummer: "<<p->handy;
cout<<endl;
cout<<endl;
cout<<endl;
p=p->next;
}
}
nur kommt das eine zugriffsverletzung als meldung. also denk ich das es den zeiger nicht gibt auf den ich da zeige. sehe aber trotzdem nicht mein fehler
Zuletzt bearbeitet: