Struct durchlaufen..

KHORN

Mitglied
Hi leutz.

Ich hab folgendes Problem :

Code:
#include <iostream>
#include <conio.h>
using namespace std;

struct Person
{
       char name[32];
};

int main()
{
    Person test;
    sprintf(test.name, "Test");
    cout<<test.name;
    getch();
    return 0;
}

Schön und gut, aber wie kann ich jetzt jede "Person" durchlaufen mit einer Schleife und dann z.B den Namen ausgeben ?

(Hab schon gesucht)

Ich bin für jede Hilfe Dankbar.


MfG
KHORN
 
Code:
#include <iostream>
#include <conio.h>
using namespace std;

struct Person
{
       char name[32];
};

int main()
{
    Person test;
    sprintf(test.name, "Test");
    cout<<test.name;
    getch();
    return 0;
}

du kannst nur einen namen in deiner Strucktur schreiben wenn du mehrere Namen schreiben will musst du das so machen :
Code:
#include <iostream>
#include <conio.h>
using namespace std;

struct Person
{
       char name[32];
};

int main()
{
    Person test[2];

    strcpy(test[0].name,"test");
	strcpy(test[1].name,"test1");
	strcpy(test[2].name,"test2");

		cout << test[0].name;

    getch();
    return 0;
}

//edit ==> achja und nacher das ganze array mit ner while schleife oder so ausgeben.
 
ähmm..
Danke für die Hilfe, aber du hast mich nicht ganz verstanden ^^
Ich hab einen Struct "Person"
Ich erstell im Programm verschiedene Personen.
Und wie weiß ich wieviele Personen existieren ?
Ich will mit einer Schleife alle Personen durchgehen.
Wie mach ich das ?




KHORN
 
Ja wie soll ich das denn machen ?
Code:
Person test[2];
Und was ist wenn ich die Person nicht so erstelle ?

Ein kleines Code Beispiel wär nicht schlecht :D

Danke




MfG
KHORN
 
Code:
#include <iostream>
#include <conio.h>
using namespace std;

struct Person
{
       char name[32];
};

int main()
{
    Person test[2];
	int lang=0;

    strcpy(test[0].name,"test");
	strcpy(test[1].name,"test1");
	strcpy(test[2].name,"test2");

	for(;lang<3;lang++){
		cout <<test[lang].name<<"\n";
	}
    getch();
    return 0;
}

ich kann mich ja irren aber wenn du nur sagst
Person test;

dann erstellst du ja nur eine var. mit den namen test von typ Person und kannst somit nur eine Person abspeichern, wenn du aber sagst
Person test[2] erstellst du ein array wo du 3 Personen abspeichern kannst.
 
Na wie oben im Code.
Was meinst du denn mit Speichern ?
Und Liste hab ich auch noch nie gehört ^^

EDIT
Aber das ist es ja.
Ich weiß ja nicht genau wie viel erstellt werden sollen.



KHORN
 
Zuletzt bearbeitet:
ich nehm an er möchte 32 Personen in seinem einen struct speichern.

da wäre aber "char name[32];" falsch
müsste dann theoretisch "char* name[32];" sein

EDIT:

wenn du nicht weißt wieviele du speicherst dann mach lieber
char** name; // <- dynamisch;

und speicher dazu im struct die aktuelle Anzahl.

MfG Turri
 
Zuletzt bearbeitet:
Also in Java gibt es ne möglichkeit zu sagen

Person test[];

Also dass das Array variabel ist, nur ich weiß nicht ob es das auch in C++ gibt.

//edit
Code:
struct Person
{
       char name[32]; //hier deklarierst du ja nur eine var. mit dem namen name was 32 zeichen speichern kannst.
};
 
Zurück