goto marke
-
Hallo. Folgender code gibt immer die Fehlermeldung: Marke »ende« verwendet, aber nicht definiert, aus. aber ich habe die marke doch definiert, oder nicht?
/* bspl0077.c */ #include <stdio.h> #include <stdlib.h> #define MAX_STRING 81 main(int argc, char *argv[]) { FILE *stream; char puffer[MAX_STRING],ende; int ch; /* Ist kein Kommandozeilenparameter vorhanden? */ if(argc < 2) { printf("\nAufruf: bspl0077 <dateiname>\n"); exit(1); } /* Ist die Datei nicht vorhanden? */ if((stream = fopen(argv[1],"r")) == NULL) { printf("\n'%s': Oeffnungsfehler!\n",argv[1]); exit(1); } while(fgets(puffer,MAX_STRING,stream)!=NULL) { printf("%s",puffer); ch=fgetc(stdin); /* Warte auf Tastendruck */ switch(ch) { /* zurück zum Anfang */ case 'a': case 'A': fseek(stream,0L,SEEK_SET); break; /* Abbruch */ case 27: goto ende; } fseek(stdin,0L,SEEK_END); } ende; fclose(stream); }
-
hast du nicht, du hast eine Variable
ende
deklariert./* bspl0077.c */ #include <stdio.h> #include <stdlib.h> #define MAX_STRING 81 main(int argc, char *argv[]) { FILE *stream; char puffer[MAX_STRING]; int ch; ... goto ende; } fseek(stdin,0L,SEEK_END); } ende: fclose(stream); }
-
hm, ok. wie deklariere ich die marke, wenn nicht so?
-
Schau dir doch mal genau an, was supertux geschrieben hat - oder frag deinen guten Freund Google mal nach "c goto" und lies dir ein bisschen was durch ;).
Die Sache ist sehr einfach zu nutzen, du hast es dir ganz schön kompliziert gemacht.