Funktion, die abfragt welcher datensatz vollständig ausgegeben werden soll
-
Hallo ihr lieben,

ich habe ein beispielprogramm geschrieben welches eine art personalverwaltung (nachname,name,abteilung,gehalt) darstellt. das ganze beruht auf binärdatei...
alles ist soweit super, ich kann daten schrieben, wie auch sie zu einen späteren zeitpunkt wieder auslesen... NUN ABER MEIN PROBLEM!!!um alles ein wenig übersichtlicher zu gestalten, möchte ich, eine funktion einbauen die alle gespeicherten namen (nachnamen) aus datei liest, mich als user dann fragt welchen datensatz ich komplett ausgegebn möchte und dieses dann auch tut...
ich habe auch schon einen ersten entwurf geschrieben:
[SortierteAusgabe(char sVorname[25],char sNachname[25],char sAbteilung[25],int iAlter,int iGehalt)
{
int x=0;
int iwahl;
/* EasyCODE - /
FILEfhd;
/* EasyCODE - */
fhd=fopen("Personalverwaltung.bin","rb");
if( !fhd )
{
printf (" Konnte nicht geöffnet werden");
}
else
{
fread(sVorname,sizeof (sVorname),25,fhd);
do
{
printf(" %i : %s\n",++x, sVorname);
}while( !feof(fhd) );
fclose(fhd);
/* EasyCODE - */
printf("Welchen Datensatz möchtest DU komplett ausgeben?\n");
printf("Du kannst hier jederzeit mit Taste 0 die detailierte Ausgabe beenden!");
printf("Deine Wahl: ");
scanf("%i",&iwahl);
do
{
printf("%s, %s, %s, %s",sVorname,sAbteilung,iAlter,iGehalt);
fread(sVorname,sizeof(sVorname),25,fhd);
fread(sNachname,sizeof(sNachname),25,fhd);
fread(sAbteilung,sizeof(sAbteilung),25,fhd);
fread(&iAlter,sizeof(iAlter),1,fhd);
fread(&iGehalt,sizeof(iGehalt),1,fhd);
}while( iwahl==1 );
}]ich weiß, es funktioniert nicht, vielleicht reicht mein wissen auch noch nicht aus, aber für lösungsvorschläge und hilfe würde ich mich sehr freuen...
besten dank schon mal....

tommy
-
*grübelt* Was genau soll diese Funktion denn machen? Und wieso verwendest du keine C++-Streams und -Strings?
Als Lösungsansatz würde ich dir empfehlen, die kompletten Datensätze beim Einlesen in ein Array (besser vector<> oder deque<>) zu speichern, dann kannst du mit data[i] direkt auf deinen i-ten Datensatz zugreifen.
-
es soll lediglich dastehen...z.b.
1 : müller
2 : hahn
3 : schulzeder user gibt 3 ein, und erhält wweitere infos über den mitarbeiter....
also ich habs ja auch schon mit binärdatei lesen/schreiben (die einfache variante) super hinbekommen, nun liegt es aber daran eine sortierte ausgabe mit ins programm einzubringen
-
struct Datensatz { string Vorname; string Nachname; //... } vector<Datensatz> data; // Einlesen und auslesen habe ich heute in einem anderen Thread erklärt for(int i=0;i<data.size();++i) cout<<i<<": "<<data[i].Nachname<<endl; cout<<"Ihre Wahl?"<<endl; cin>>iWahl; cout<<"Vorname: "<<data[i].Vorname<<endl; cout<<"Nachname: "<<data[i].Nachname<<endl; // etc.Und zum sortieren definierst du dir einen geeigneten operator<(const Datensatz& l,const Datensatz& r) und jagst den Vektor durch std::sort().