Struct - Nachhilfe
-
char ist ein Datentyp, der nur ein einzelnes Zeichen speichert (steht schließlich für character). Du benötigst in deinem Fall string.
-
ohh, ich glaube ich wurde etwas missverstanden

Ich habe kein C++ tag benutzt, weil mein Code lediglich eine Art 'Skizze' war, deshalb ist das auch nicht ganz korrekt, was das "char" angeht (ich weiß ich müsste eigentlichchar abc[100]z.b schreiben)
Das, was nicht so funktioniert, war mein Versuch auf eine Lösung zu kommen. Ich hatte kein Problem als es nur um eine "Familie" ging, sobald aber mehr dazu kamen, bin ich auf keinen logischen Ansatz mehr gekommen.
Danke allen für die rasche Hilfe. Ich werde mir mal das, was Fencer gepostet hat, genauer ansehen.
-
Wird familienklima eigentlich in Grad oder in Celsius angegeben?
-
SehrJei schrieb:
Wird familienklima eigentlich in Grad oder in Celsius angegeben?
Wenn schon, dann in Grad Celsius.
@ OP: wenn du keinen guten Grund dagegen hast, müsstest du string abc; schreiben.
-
Hm, also irgendwie mache ich noch irgendwas falsch. Ich glaube es liegt daran, wo und wann ich das Struct und seine Elemente deklariere.
Ich habe eine Headerdatei mit allen Variablen etc. dort wird mein Struct und seine Elemente definiert. Die Variable zu diesem Struct wird ebenfalls dort deklariert.
Wenn ich nun mein Struct ebenfalls in dieser Headerdatei "befülle", bekomme ich eine Menge Fehler. z.B "Fehlender Typspezifizierer - int wird angenommen." oder dass ich ein ";" vergessen hätte etc.
-
werda schrieb:
Hm, also irgendwie mache ich noch irgendwas falsch. Ich glaube es liegt daran, wo und wann ich das Struct und seine Elemente deklariere.
Ich habe eine Headerdatei mit allen Variablen etc. dort wird mein Struct und seine Elemente definiert. Die Variable zu diesem Struct wird ebenfalls dort deklariert.
Wenn ich nun mein Struct ebenfalls in dieser Headerdatei "befülle", bekomme ich eine Menge Fehler. z.B "Fehlender Typspezifizierer - int wird angenommen." oder dass ich ein ";" vergessen hätte etc.Das hört sich ein bisschen wirr an, wie du die Begriffe Definition und Deklaration hier verwendest. Außerdem ist es nicht ganz der Zweck einer Headerdatei, dass dort Sachen 'befüllt' werden. Zeig am besten mal den Code her.
Die Fehlermeldung klingt danach, als hättest du einen Syntaxfehler der Definition deiner struct-Instanz gemacht. Genau kann man das erst sagen, wenn man den Code sieht.
-
struct familie { string name; string wohnort; bool haus; int familienklima; int mitglieder; };dann die variable:
familie fam[2];hier das "befüllen":
fam[0].name = "Maier"; fam[0].wohnort = "Hier"; fam[0].haus = false; fam[0].familienklima = 0; fam[0].mitglieder = 2;
-
Das ist richtig, insofern:
a) Der Compiler weiß, was string ist: Möglicherweise include vergessen? Daran gedacht, dass string im Namespace std ist?
b) Die Wertzuweisungen sich innerhalb eines Codeblocks befinden
-
Ich vermute es liegt an b).
Ich möchte die Wertezuweisung nämlich gerne global haben. Heißt das findet außerhalb eines Codeblocks statt.
-
Dann einfach dafür die Struktur-Initialisierung verwenden:
familie fam[2] = { { "Maier", "Hier", false, 0, 2 }, { "Maier Zwo", "Dort", true, 1, 3 } };
-
Bei deiner Struct definition ist kein typedef angegeben, demnach müsste es heissen
struct familie fam[3];oder du machst
typedef struct { string name; string wohnort; bool haus; int familienklima; int mitglieder; }familie; //dann klappt auch familie fam[3];oder bin ich jetzt falsch?
Gruß,
Sascha
-
Sascha schrieb:
...
Wir sind hier im C++ Unterforum und nicht im C-Teil...
bb
-
Sascha schrieb:
Oder bin ich jetzt falsch?
Gruß,
SaschaJau. In C++ braucht man das typedef nicht.
-
unskilled schrieb:
Sascha schrieb:
...
Wir sind hier im C++ Unterforum und nicht im C-Teil...
bboh...stimmt!

Sorry!aber...
werda schrieb:
... bekomme ich eine Menge Fehler. z.B "Fehlender Typspezifizierer - int wird angenommen." oder dass ich ein ";" vergessen hätte etc.
evtl hat er isn falsche unterforum geschrieben.

Die Fehlermeldungen klingen für mich nach C ...Sascha
-
fam[0].familienklima = 0;