struct + einlesen
-
hiho, also ich hab folgendes geschrieben.. programm ist noch nicht fertig aber zumindest mal zum teil, und es funktioniert nicht er schreibt folgenden fehler an:
Syntaxfehler: Syntaxfehler: '}' Zeile 52
und fatal error: Unerwartets Dateiende Zeile 53 (dies ja egtl garnimma gibt? ..#include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXNAME 30 enum sprit {benzin = 0, diesel =1}; struct Auto { char ID; char marke[MAXNAME]; enum sprit treibstoff; }; int main (int argc, char* argv[]) { int input=0; struct Auto cars; do { printf("1: Auto hinzufuegen\n"); printf("3: Programm beenden\n"); printf("\n\nBitte auswaehlen: --> "); fflush(stdin); scanf("%d", input); switch(input){ case 1: printf("\n\n\tEine neues Auto hinzufuegen:\n"); printf("\nID: "); fflush(stdin); scanf("%d\n",&cars.ID); printf("Name: "); fgets(cars.name, MAXNAME, stdin); printf("\Sprit: 0 fuer benzin, 1 fuer diesel\n"); do{ scanf("%d",&cars.geschlecht); }while((cars.treibstoff == 0) || cars.treibstoff == 1); printf("\n\Auto hinzugefuegt"); break; /*case 3: printf("\n\n\tProgramm beendet"); EXIT_SUCCESS; break;*/ } } }while(input != 3);
nun und ich hab halt keinen schleier was es da aufsich hat..
-
int main(int argc, char* argv[]) { // ...hier steht dein code do { ..... } while(...);
was siehst du, bzw. was siehst du nicht?
Richtig, der Main-Block ist nicht geschlossen, weil eine "}" fehlt.
Edit: aufm 2. Blick sehe ich, dass das while hinter der falschen }-Klammer sitzt. das muss eine klammer davor stehen.
-
dekcarki schrieb:
int main(int argc, char* argv[]) { // ...hier steht dein code do { ..... } while(...);
was siehst du, bzw. was siehst du nicht?
Richtig, der Main-Block ist nicht geschlossen, weil eine "}" fehlt.
Edit: aufm 2. Blick sehe ich, dass das while hinter der falschen }-Klammer sitzt. das muss eine klammer davor stehen.
hm danke schon mal das war schon mal was...
jetzt schreibt er zwar 0 fehler an aber wenn ich zb 1 eingebe bricht das programm ab obwohl es ja in den switch case reinsollte?
warum tut es das nicht?
-
printf("\n\nBitte auswaehlen: --> "); fflush(stdin); scanf("%d", input); // sollte hier nicht &input stehen?
case 1: printf("\n\n\tEine neues Auto hinzufuegen:\n"); printf("\nID: "); fflush(stdin); scanf("%d\n",&cars.ID); // <--- scanf("%d",&cars.ID) printf("Name: "); fgets(cars.name, MAXNAME, stdin); printf("\Sprit: 0 fuer benzin, 1 fuer diesel\n"); do{ scanf("%d",&cars.geschlecht); }while((cars.treibstoff == 0) || cars.treibstoff == 1); // "treibstoff" hast du in Struct Auto doch gar nicht definiert, du willst doch "geschlecht" überprüfen?! printf("\n\Auto hinzugefuegt"); break;
-
dekcarki schrieb:
printf("\n\nBitte auswaehlen: --> "); fflush(stdin); scanf("%d", input); // sollte hier nicht &input stehen?
case 1: printf("\n\n\tEine neues Auto hinzufuegen:\n"); printf("\nID: "); fflush(stdin); scanf("%d\n",&cars.ID); // <--- scanf("%d",&cars.ID) printf("Name: "); fgets(cars.name, MAXNAME, stdin); printf("\Sprit: 0 fuer benzin, 1 fuer diesel\n"); do{ scanf("%d",&cars.geschlecht); }while((cars.treibstoff == 0) || cars.treibstoff == 1); // "treibstoff" hast du in Struct Auto doch gar nicht definiert, du willst doch "geschlecht" überprüfen?! printf("\n\Auto hinzugefuegt"); break;
aja stimmt
sehr schön jetzt ist schon fast alles perfekt BIS AUF:
er überspringt das fgets einfach sprich er fordert mich nicht auf dass ich was eingebe..