Links von ".key" muss sich eine Klasse/Struktur/Union befinden.
-
Hi!
Das folgende Programm soll mithilfe eines structs Nutzernamen, Passwort und Status eines Accounts über Eingabe speichern und zur Kontrolle nochmal ausgeben.
Leider erhalte ich die Fehlermeldung:Fehler 6 error C2228: Links von ".key" muss sich eine Klasse/Struktur/Union befinden.
#include <stdio.h> int main(){ struct acc{ char user[30]; char key[20]; int status; }; printf("Geben Sie ihren Benuternamen ein: \n"); scanf("%s",&acc.user); printf("Geben Sie ihr Passwort ein: \n"); scanf("%s",&acc.key); printf("Geben Sie den Accountstatus ein (0 oder 1) ein: \n"); scanf("i",&acc.status); printf("%s \t %s \t %i",acc.user,acc.key,acc.status); getchar(); getchar(); return 0; }
-
Du hast nirgendwo eine Instanz deines structs angelegt.
struct acc
ist der Name deines structs, wenn du da drauf den Punkt-Operator oder den Adressoperator anwendest, dann ist das in etwa so sinnvoll wieint.irgendwas
oder&int
. Du musst eine Variable vom Typstruct act
anlegen, dann kannst du mit dieser arbeiten, wie du es hier vor hast.Weiterhin gehört in C das "struct" zum Namen dazu. Wenn der Compiler nur "acc" als Typbezeichner akzeptiert, dann benutzt du einen C++-Compiler. Tu das nicht. Die übliche Abhilfe gegen lange Schreiborgien ist ein passender Typedef:
typedef struct{ char user[30]; char key[20]; int status; } acc;
Dein ganzer Code kann übrigens auch mit einer subtilen Änderung lauffähig gemacht werden:
struct { char user[30]; char key[20]; int status; } acc;
Mit deinem Wissen über struct-Deklarationen und Variablendefinitionen: Was bedeutet dies und warum funktioniert das?