Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Datenstrukturen von UP an HP übergeben

Empfohlene Antworten

Veröffentlicht

Hallo, kann mir bitte jemand behilflich sein ? habe folgendes problem.

habe folgende datenstruktur:

struct datensatz

{

char name[15];

char v_name[15];

char strasse[15];

int hausnr;

int gebdat;

char telnr[15];

};

HP:

void main()

{

datensatz dat1;

eingabe(dat1);

cout<<dat1.name; //z.B.

}

UP:

datensatz eingabe(datensatz dat1)

{

cout<<"\nName: ";

cin>>dat1.name;

cout<<"\nVorname: ";

cin>>dat1.v_name;

cout<<"\nStrasse: ";

cin>>dat1.strasse;

cout<<"\nHausnummer: ";

cin>>dat1.hausnr;

cout<<"\nGeburtsdatum: ";

cin>>dat1.gebdat;

cout<<"\nTelefonnummer: ";

cin>>dat1.telnr;

}

Nun, wie kann ich die Daten vom UP nun ans HP übergeben ?

Sollte das eigentlich mit Pointer/Zeigern machen. Habe jedoch leider noch nicht so den Plan von dem ganzen.

Wo finde ich gute Beispiele zu dem Thema ?

plz help ! :confused:

hier ist ein ganz gutes Tutorial

schau einfach mal nach aber ich denke da sind sicher Zeiger erklaert

http://www.c-plusplus.de/tuts/cpp/vcppk.zip

hmh, da hab ich schon geschaut, hat mir jedoch nicht so ganz weitergeholfen !

ich würde zuerst ma das unterprogramm vor das hauptprogramm klattschen un dann würde ich nicht 2* dat1 verwenden...das objekt in der klammer würde ich dann peter nennen...auf jeden fall net dat1! hast du schon mal versucht mit einem rückgabewert zu schaffen...das heißt, dass du deine funktion eingabe in void eingabe taufst und zum schluß dann return dat1 oder so zurückgigst...kann aber auch ziemlich falsch sein!

un ab!

Schnitzel ist ziemlich verschärft!

...hab gerade nochma überlegt: das mit dem rückgabe mußt du hier nicht machen

Schreib einfach

void main()

{

datensatz dat1;

eingabe(&dat1);

cout<<dat1.name; //z.B.

}

UP:

bool eingabe(datensatz& dat1)

und gib zum Schluß ein "return true;" zurück, wenn alles glattging.

Das ist nämlich im Grunde genommen dasselbe als wie wenn Du einen Pointer verwenden würdest. Bei Deinem Alten UP wird eine Kopie von dat1 übergeben. Diese Kopie existiert nur innerhalb vom Namensbereich von UP. Nach dem Return wäre alles deshalb weg. Durch die Referenzierung wird die Adresse auf die Daten vom dat1 im Main() weitergegeben. Jede Veränderung auf diese Referenz verändert das dat1 von Main(). Außerdem kann das anlegen von Kopien die Laufzeit extrem verlängern, beziehungsweise bei rekursiven Funktionen kann plötzlich einfach der Stack überlaufen wenn er nicht groß genug ist. Ist vielleicht gut zu wissen, aber jetzt schau Dir unbedingt mal Referenzen und Pointer genauer an, denn ohne die kann man nicht viel anstellen.

Zum Schluß noch kurz die Pointer-Version:

void main()

{

datensatz dat1;

datensatz*p_dat1=&dat1;

eingabe(p_dat1); oder eingabe(&dat1); dann ist der p_dat1 aber überflüssig

cout<<dat1.name; //z.B.

}

UP:

bool eingabe(datensatz* dat1)

{

cout<<"\nName: ";

cin>>dat1->name;

cout<<"\nVorname: ";

cin>>dat1->v_name;

usw.

<FONT COLOR="#a62a2a" SIZE="1">[ 21. August 2001 00:00: Beitrag 1 mal editiert, zuletzt von Crush ]</font>

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.