Personendaten
-
danke du bist meine rettung

muss ich
string vorname;
string strasse;
usw.
nicht noch in void eingabe oder void anzeigen schreiben??
vielleicht könntest du mir ja einen tipp zu der funktion löschen geben
vielen dank nochmal
-
muss ich
string vorname;
string strasse;
usw.
nicht noch in void eingabe oder void anzeigen schreiben??ja natuerlich, genau so wie person[i].name ...
meine loeschfunktion:
void loesch_person () { // eine person loeschen string str;int i; while (true) { system("cls"); cout<<"welche Nr. soll geloescht werden ? (leer=Ende)\n"; getline(cin,str); if (str=="") break; // endlos schleife beenden int suchnr=atoi(str.c_str()); // string in int umwandeln if (suchnr < 1 || suchnr > 320000 ) { cout<< "personal nr ungueltig\n "; system("pause"); continue; // weiter an anfang while schleife } for (i=0;i< kgroesse;i++ ) // nach personal nr suchen if ( person[i].pnr ==suchnr ) { person[i].nname=""; // name loeschen reicht cout<<"Pers nr.: "<<suchnr<<" geloescht\n"; break; // for schleife beenden } if (i>=kgroesse) // wenn i am ende, dann nicht gefunden cout<<"Pers nr.: "<<suchnr<<" nicht gefunden\n"; system("pause"); } return; }aber vom reinen kopieren lernt man nix
, bastel mal selber ein wenig am code, also z.bsp. an einer routine zum ändern...
-
ich weiß am kopieren lerne ich nix aber ich steht zur zeit unter druck in ich verstehe fast nix.

ich danke dir für deine mühe nochmal.
-
void eingabe_person () { // eine neue person anlegen T_person wperson; // temp var while (true) { cout<<"Name ? (leer=Ende)\n"; getline(cin,wperson.nname); cout<<"Geburtsdatum ?\n"; getline(cin,wperson.geb); //int cout<<"Strasse ?\n"; getline(cin,wperson.str); cout<<"Hausnummer ?\n"; getline(cin,wperson.hnr); //int cout<<"PLZ ?\n"; getline(cin,wperson.plz); //int cout<<"Ort ?\n"; getline(cin,wperson.ort); cout<<"Land-Code ?\n"; getline(cin,wperson.lcode); //int cout<<"Land ?\n"; getline(cin,wperson.land); if (wperson.nname=="") break; int frei=find_frei(); if (frei==-1) { // ungueltige index heisst fehler, voll cout<<"tabelle voll !\n"; break; } person[frei].pnr=frei; person[frei].nname=wperson.nname; person[frei].geb=wperson.geb; person[frei].str=wperson.str; person[frei].hnr=wperson.hnr; person[frei].plz=wperson.plz; person[frei].ort=wperson.ort; person[frei].lcode=wperson.lcode; person[frei].land=wperson.land; } return; }bei den ganzen int deklarationen in der while schleife kommt bei mir ein fehler:
no matching function for call to `getline(std::istream&, int&)'ich habe ein paar sachen probiert da zeigt es keinen fehler an aber dann spinnt das programm irgendwie
-
die funktion getline(cin,...) erwartet einen string, da kannst du keine int variable übergeben. mach es so wie oben steht:
getline(cin,str); int suchnr=atoi(str.c_str()); // string in int umwandelndas koennte man auch in eine funktion auslagern
int getInt ( ) { int erg;string str; getline(cin,str); erg=atoi(str.c_str()); return erg; } // und dann aufrufen mit: int i=getInt();liefert allerdings bei leerstring eine 0, dass muesste man noch abfangen...
-
hab grad gesehen:
cout<<"Geburtsdatum ?\n"; getline(cin,wperson.geb); //intdas wird auch nicht gehen, int geht nur bis +32767, nimm lieber auch string als datentyp.
es gibt zwar auch spezielle typen fuer datums felder, aber wenn du mit dem datum nix weiter machen willst, reicht string...
-
kermit1 schrieb:
..., int geht nur bis +32767,...
Das ist heutzutage aber schon sehr selten. Auf was für nem Betriebssystem
arbeitest du denn.
-
Scheint wohl Windows 95 zu sein. 98 hat meines Wissens schon 32 bit.
Aber stimmt, das ist echt selten... fast Rarität.

-
Searence schrieb:
Scheint wohl Windows 95 zu sein. 98 hat meines Wissens schon 32 bit.
Windows95 "hat" auch 32bit.
-
Bashar schrieb:
Windows95 "hat" auch 32bit.
Auch die ersten Verisonen?
Ich bin der Meinung das die ersten Ausgaben noch 16 Bit Versionen waren.
(Korrigiere mich falls ich falsch liege)//EDIT
ich lag falsch, danke für die Richtigstellung, so lerne ich auch dazu.

Für alle die es nachlesen wollen: http://de.wikipedia.org/wiki/Windows_95