Struktur übergeben
-
Hi, folgendes:
#include <stdio.h> struct Bank{ char cName[50]; int iSd; double dSp, dZs; } ;
main() { struct Bank sBank; Eingabe(sBank);}
Eingabe(struct sBank x) { printf("Banknamen eingeben: "); fgets(x.cName, 50, stdin); printf("Sparrate eingeben: "); fgets(x.dSp, 1, stdin); printf("Zinssatz eingeben: "); fgets(x.dZs, 1, stdin); printf("Spardauer in Jahren eingeben: "); fgets(x.iSd, 1, stdin); }
Dann kommt der Fehler
D:\Eigene Dateien\P\Struktur2.c(56) : error C2079: 'x' verwendet undefiniertes struct 'sBank'Was ist da falsch? DIe Übergabe ja, aber was genau? Find das ni.. Ich könnts auch global machn, aber das ist ja nicht allzu schön
Dachte, die Suche würde ein Beispiel liefern, aber die wurde ja so dumm gemacht, dass man da garnix mehr richtig findet..
-
du musst einen pointer auf das struct übergeben und dann statt x.irgendwas x->irgendwas schreiben.
außerdem liest fgets() nur in char* ein. du brauchst scanf()
-
WIe meinst das genau? Hab jetzt
Eingabe(struct *sBank x) { printf("Banknamen eingeben: "); fgets(x->cName, 50, stdin); printf("Sparrate eingeben: "); scanf("%s", &x->dSp); printf("Zinssatz eingeben: "); scanf("%s", &x->dZs); printf("Spardauer in Jahren eingeben: "); scanf("%s", &x->iSd); }
main() { struct Bank *sBank; Eingabe(*sBank); }
Aber da meckert er immer noch, wieso? Da is irgendwo was vergessn von mir....
D:\Eigene Dateien\P\Struktur2.c(51) : error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'x'
D:\Eigene Dateien\P\Struktur2.c(51) : error C2061: Syntaxfehler : Bezeichner 'x'
-
Habs hinbekommen, hatte was übersehen *g*
trotzdem thx!
-
guck dir an, was scanf() als formatstring akzeptiert. %s passt nur beim ersten und da auch nur, wenn der string keine leerzeichen enthält. (-> fgets())
das wirst du doch wohl noch schaffen?in der main(): struct Bank sBank; da darf kein * sein
dann muss es int main() und void Eingabe(... heißen.
dein visual c++ ist nicht grad gut zum einsteigen...achja, per ICQ möchte ich sowas nicht beantworten. also in zukunft bitte nur im board.
-
So, hat nun alles geklappt, großen Dank an c.rackwitz, dass er meine Fragen aushielt.