Leere Stellen im Menü
-
Hi, ich hab da so ein menü:
for (;;) { // m1 printf("[1] fopen - Oeffnen einer Datei.\n"); printf("\t\tFILE *fopen (const char *datei, const char *modus)\n\n"); printf("[2] freopen - Oeffnen einer Datei mit bereits existierendem Stream.\n"); printf("\t\tFILE *freopen (const char *datei, const char *modus, FILE *fz)\n\n"); // fz = File Zeiger printf("[3] fclose - Schliessen einer Datei.\n"); printf("\t\tint fclose (FILE *fz);\n\n"); printf("[4] feof/ferror - Pruefen des EOF-und Fehler-Flags\n"); printf("\t\tint feof (FILE *fz);\n\t\tint ferror (FILE *fz);\n\n"); printf("[5] clearerr - Loeschen des Fehler-und EOF-Flags\n"); printf("\t\tvoid clearerr (FILE *fz);\n\n"); printf("[6] getchar - Lesen eines Zeichen von stdin\n"); printf("\t\tint getchar (void);\n"); printf(" putchar - Schreiben eines Zeichen auf stdout\n"); printf("\t\tint putchar (int zeichen);\n\n"); printf("[7] getc - Lesen eines Zeichens aus einer Datei\n"); printf("\t\tint getc (FILE *fz);\n\n"); printf("[8] fgetc - Lesen eines Zeichens aus einer Datei\n"); printf("\t\tint fgetc (FILE *fz)\n\n"); printf("[9] putc - Schreiben eines Zeichens in einer Datei\n"); printf("\t\tint putc (int zeichen, FILE *fz);\n\n"); printf("[10] fputc - Schreiben eines Zeichens in einer Datei\n"); printf("\t\tint fputc (int zeichen, FILE *fz);\n\n"); printf("[11] ungetc - Zurueckschreiben eines gelesenen Zeichens in Eingabepuffer\n"); printf("\t\tint ungetc (int zeichen, FILE *fz);\n\n"); printf("[12] gets - Lesen ganzer Zeilen von der Standardeingabe\n"); printf("\t\tchar *gets (char *puffer);\n\n"); printf("[13] fgets - Lesen ganzer Zeilen aus einer Datei\n"); printf("\t\tchar *fgets (char *puffer, int n, FILE *fz);\n\n"); printf("[14] puts - Schreiben ganzer Zeilen auf die Standardausgabe\n"); printf("\t\tint puts (const char *puffer);\n\n"); printf("[15] fputs - Schreiben ganzer Zeilen in eine Datei\n"); printf("\t\tint fputs (const char *puffer, FILE *fz);\n\n"); printf("[16] scanf - Formatiertes Lesen von der Standardeingabe\n"); printf("\t\tint scanf (const char *format, ...);\n\n"); printf("[17] fscanf - Formatiertes Lesen aus einer Datei\n"); printf("\t\tint fscanf (FILE *fz,const char *format, ...);\n\n"); printf("[18] printf - Formatiertes Schreiben auf die Standardeingabe\n"); printf("\t\tint printf (const char *format, ...);\n\n"); //fflush (stdin); printf("[19] fprintf - Formatiertes Schreiben in eine Datei\n"); printf("\t\tint fprintf (FILE *fz, const char *format, ...);\n\n"); printf("[20] sscanf - Formatiertes Lesen aus einem String\n"); printf("\t\tint sscanf (const char *puffer, const char *format, ...);\n\n"); printf("[21] sprintf - Formatiertes Schreiben in einen String\n"); printf("\t\tint sprintf (char *puffer, const char *format, ...);\n\n"); printf("[22] vprintf - Formatiertes Schreiben mit Argumentzeiger auf die Standardeingabe\n"); printf("\t\tint vprintf (const char *format, va_list arg);\n\n"); printf("[23] vfprintf - Formatiertes Schreiben mit Argumentzeiger in eine Datei\n"); printf ("\t\tint vfprintf (FILE *fz, const char *format, va_list arg);\n\n"); printf("[24] vsprintf - Formatiertes Schreiben in einen String mit Argumentzeiger\n"); printf("\t\tint vsprintf (char *puffer, const char *format, va_list arg);\n\n"); printf("[25] Neue printf-/scanf-Funktionen in C99\n"); printf("\t\tint snprintf (char *puffer, size_t n, const char *format,...);\n"); printf("\t\tint vsnprintf (char *puffer, size_t n, const char *format, va_list arg);\n"); printf("\t\tint vscanf (char *puffer, va_list arg), \n"); printf("\t\tint vfscanf (FILE *fz, const char *format, va_list arg); (fehlt)\n"); printf("\t\tint vsscanf (char *puffer, const char *format, va_list arg); (fehlt)\n\n"); printf("[26] fread - Binaeres Lesen ganzer Bloecke\n"); printf("\t\tsize_t fread (void *puffer, size_t blockgroesse, size_t blockzahl, FILE *fz);\n\n"); printf("[27] fwrite - Binaeres Schreiben ganzer Bloecke\n"); printf("\t\tsize_t fwrite (const void *puffer, size_t blockgroesse, size_t blockzahl, FILE *fz);\n\n"); printf("[28] setbuf - Einstellen der Pufferungsart fuer Dateien\n"); printf("\t\tvoid setbuf (FILE *fz, char *puffer);\n\n"); printf("[29] setvbuf - Einstellen der Pufferungsart fuer Dateien\n"); printf("\t\tint setvbuf (FILE *fz, char *puffer, int modus, size_t puffergroesse);\n\n"); printf("[30] fflush - Inhalte von Puffern in eine Datei übertragen\n"); printf("\t\tint fflush (FILE *fz);\n\n"); printf ("[31] fseek/ftell - Positionieren in einer Datei\n"); printf("\t\tint fseek (FILE *fz, long offset, int wie);\n\n"); printf("\t\tlong ftell (FILE *fz);\n\n"); printf("[32] fsetpos/fgetpos - Positionieren in einer Datei ab C89\n"); printf("\t\tint fsetpos (FILE *fz, const fpos_t *pos);\n"); printf("\t\tint fgetpos (FILE *fz, fpos_t *pos);\n\n"); printf("[33] rewind - Positionieren an den Dateianfang\n"); printf("\t\tvoid rewind (FILE *fz);\n\n"); printf("[34] tmpnam - Einen eindeutigen Namen fuer eine temporaere Datei erzeugen\n"); printf("\t\tchar *tmpnam (char *zeiger);\n"); printf("\t\tFILE *tmpfile (void);\n\n"); printf("[35] tempnam - Das Erzeugen von temporaeren Dateinamen (mit Directory- und Praefixvorgabe)\n"); printf("\t\tchar *tempnam (const char *directory, const char *praeffix);\n\n"); printf("[36] remove - Loeschen einer Datei\n"); printf("\t\tint remove (const char *pfadname);\n\n"); printf("[37] rename - Umbenennen einer Datei\n"); printf("\t\tint rename (const char *altname, const char *neuname);\n\n"); printf("[38] perror - Ausgabe der zu errno gehoerende Fehlermeldung\n"); printf("\t\tvoid perror (const char *meldung);\n\n"); printf("[0] Beenden\n");
Und zwischen 17 und 18 hab ich eine Lücke von so 15 Zeilen.
Weisst einer woher das kommt und wie man das beseitigen kann?Vielen dank
-
noe, ich jetzt nicht direkt! So wie es da steht können da nicht so viele Leerzeilen sein!
-
ich seh beim ausprobieren nicht, was du (maximo) beschreibst.
dein fehler liegt woanders oder existiert nicht.
-
Hmm, ok. Hier der ganze Code:
Viel spass beim suchen#include <stdio.h> // für alle hierbesprochenen funktionen, siehe Menü #include <errno.h> // für error-ausgaben #include <string.h> // für str-funktionen wie strcmp #include <stdarg.h> // für variable lange Argumentliste // globale Variablen FILE *Fd1; int zeichen = 0; char czeichen[100]; char datei[20]; //prototypen void warfopen (); void warfreopen(); void warfclose () ; void warfclose (); void warerror () ; void warclearerr () ; void getputchar () ; void wargetc () ; void warfgetc () ; void warputc () ; void warfputc (); void warungetc (); void wargets (); void warfgets (); void warputs(); void warscanf() ; void warfscanf (); void warprintf(); void warfprintf (); void warsscanf(); void warsprintf (); void argprintf(char *string, ...); void warvprintf () ; void argf(char *string, ...); void warvfprintf(); void args (char *ziel, char *quel, ...); void args (char *ziel, char *quel, ...) ; void warvsprintf(); void argvs (char *ziel, char *quel, ...); void argvv (char *string, ...); char *myscanf(char *string, ...); char *mysscanf(char *string1,...); void warc99 () ; void warfread () ; void warfwrite () ; void warsetbuf (); void warsetvbuf () ; void warfflush (); void warfseek (); void warfsetpos () ; void warrewind (); void wartmpnam () ; void wartempnam (); void warremove() ; void warperror (); void warfopen (char zeich[]) { //FILE *Fd1; normalerweise hier, wenn man keine weiteren operationen damit vor hat //char datei[20]; siehe oben printf("Geben Sie die Datei ein: "); scanf ("%s", datei); if(!strcmp(zeich, "r") || !strcmp(zeich, "w") || !strcmp(zeich, "a") || !strcmp(zeich, "r+") || !strcmp(zeich, "w+") || !strcmp(zeich, "a+")) { if ( (Fd1 = fopen (datei, zeich)) == NULL) fprintf(stderr, "Fehler: %s\n\n", strerror (errno)); else printf("Datei wurde geoeffnet!\n\n"); } else printf("Falsches Zeichen!\n"); } void warfreopen (char zeich[]) { char datei[20]; printf("Geben Sie die Datei ein: "); scanf ("%s", datei); //if ( zeich == "r" || "w" || "a" || "r+" || "w+"|| "a+") { // falsch if(!strcmp(zeich, "r") || !strcmp(zeich, "w") || !strcmp(zeich, "a") || !strcmp(zeich, "r+") || !strcmp(zeich, "w+") || !strcmp(zeich, "a+")) { if ( (Fd1 = freopen (datei, zeich, Fd1)) == NULL) fprintf(stderr, "Fehler: %s\n\n", strerror (errno)); else printf("Datei wurde erneut geoeffnet!\n\n"); } else printf("Falsches Zeichen!\n"); } void warfclose () { if ( fclose (Fd1) ) // <> als 0: ohne ! true // 0: mit ! false fprintf(stderr, "Fehler: %s\n\n", strerror (errno)); else printf("Datei wurde geschlossen!\n"); } void warerror () { if ((stdin || stdout) != 0){ printf("Keine Datei angegeben!\n"); } else { if (Fd1 == NULL){ printf("Keine Datei!\n"); } else { if (ferror (Fd1)) fprintf(stderr, "Fehler: %s\n\n", strerror (errno)); else printf("Kein Fehler!\n"); if (feof (Fd1)) fprintf(stderr, "Fehler: %s\n\n", strerror (errno)); else printf("Kein EOF!\n"); } } } void warclearerr () { if (Fd1 == NULL){ printf("Keine Datei!\n"); } else { clearerr (Fd1); printf("Flags werden jetzt geloescht!\n"); } } void getputchar () { //int zeichen; printf("Alle eingegebenen Zeichen werden gleich auf den Monitor ausgegeben!\n"); if (Fd1 == NULL || zeichen){ printf("Keine Datei!\n"); } else { while ( (zeichen = getchar ()) != EOF) putchar (zeichen); } } void wargetc () { printf("Mit STRG + D beenden.\n"); //int zeichen; if (Fd1 == NULL || zeichen){ printf("Keine Datei!\n"); } else { while ( (zeichen = getc(Fd1) ) != EOF) putchar(zeichen); printf("Ende der Ausgabe mit getc!\n"); } } void warfgetc () { printf("Mit STRG + D beenden.\n"); //int zeichen; if (Fd1 == NULL || zeichen){ printf("Keine Datei!\n"); } else { while ( (zeichen = fgetc(Fd1) ) != EOF) putchar (zeichen); } printf("Ende der Ausgabe mit fgetc!\n"); } void warputc () { printf("Mit STRG + D beenden.\n"); //int zeichen; printf("Geben Sie ein oder mehrere Zeichen ein:\n"); if (zeichen){ printf("Keine Datei!\n"); } else { while ( (zeichen = getchar() ) != EOF) putc(zeichen,Fd1); printf("Ende der Eingabe mit getc!\n"); } } void warfputc () { printf("Mit STRG + D beenden.\n"); //int zeichen; printf("Geben Sie ein oder mehrere Zeichen ein:\n"); if (zeichen ){ printf("Keine Zeichen!\n"); } else { while ( (zeichen = getchar() ) != EOF) fputc(zeichen,Fd1); printf("Ende der Eingabe mit getc!\n"); } } void warungetc () { if (zeichen) { printf("Zeichen werden zurueckgesetzt!\n"); ungetc (zeichen, Fd1); printf("Zeichen ist zurueckgesetzt!\n"); } else { printf("Zeichen wurde nicht zurueckgegeben!\n"); } } void wargets () { char name[20]; if (name) { printf("Bitte geben Sie Ihren Namen ein : "); gets(name); /* Gefährlich */ printf("Guten Tag %s\n",name); } else { printf("Kein Puffer!\n"); } } void warfgets () { char name[20]; if (name ) { printf("Bitte geben Sie Ihren Namen ein : "); fgets(name, 20, stdin); printf("Hallo %s",name); } else { printf("Kein Puffer!\n"); } } void warputs () { char name [100] = "Zeichenkette"; if (name > 0) { puts (name); } else { printf("Negativer Wert!\n"); } } void warfputs () { char name[20] = "Zeichenkette"; if (name > 0) { fputs (name, stdout); printf("\n"); } else { printf("Negativer Wert!\n"); } } void warscanf() { int zahld, zahli; printf("Geben Sie eine Zahl (0-9) ein: "); scanf("%100d",&zahld); printf("Geben Sie eine Zahl (0-9) ein: "); scanf("%100d",&zahli); unsigned int zahlo; printf("Geben Sie eine oktale Zahl (000) ein: "); scanf("%100o", &zahlo); unsigned int zahlu; printf("Geben Sie eine unsigned Zahl (+0-9) ein: "); scanf("%100u", &zahlu); int zahlx; printf("Geben Sie eine hexa Zahl (0x00 - 0xff) ein: "); scanf("%100x", &zahlx); float zahlf; printf("Geben Sie eine gleitpunktzahl Zahl (0.000 - 9.999) ein: "); scanf("%100f", &zahlf); // e,f,g,E,G char zahls[100]; printf("Geben Sie eine Zeichenkette (maximo) ein: "); scanf("%s", zahls); while(getchar()!='\n'); char zahlc = ' '; printf("Geben Sie ein Zeichen (a) ein:"); scanf("%c", &zahlc); while(getchar()!='\n'); int zahlp; printf("Geben Sie eine Zahl (0 - 9) ein: "); scanf("%10p", &zahlp); while(getchar()!='\n'); int zahln; printf("Geben Sie eine Zahl (0 - 9) ein: "); scanf("%100n", &zahln); while(getchar()!='\n'); char zahll[100]; printf("Geben Sie eine Zeichenkette (bis m) ein:"); scanf("%[a-l]", zahll); while(getchar()!='\n'); char zahll2[100]; printf("Geben Sie eine Zeichenkette (bis m) ein:"); scanf("%[^m]", zahll2); while(getchar()!='\n'); printf("d: %d\n",zahld); printf("i: %i\n",zahli); printf("o: %o\n",zahlo); printf("u: %u\n",zahlu); printf("x: %x\n",zahlx); printf("f: %f\n",zahlf); printf("s: %s\n",zahls); while(getchar()!='\n'); printf("c: %c\n",zahlc); printf("p: %p\n",zahlp); printf("n: %n\n",zahln); printf("[liste]: %s\n",zahll); printf("[^liste]: %s\n",zahll2); } void warfscanf () { char kette1[100] ; fscanf(stdin, "%s",kette1); printf("fscanf: %s\n", kette1); } void warprintf () { printf("Kingenton: \007 oder \a\n"); printf("Backspace:\b;\n"); printf("Seitenvorschub: \fSeitenforschub\n"); printf("Neue Zeile: \nNeue Zeile\n"); printf("Wagenruecklauf: \rAutos\n"); printf("Tabulator: \tTabulator\n"); printf("Vertikales Tabulatorzeichen: \vVertikales Tabulatorzeichen\n"); printf("Oktalzahlzeichen: \063\n"); printf("Hexadezimalzahl: \x63\n"); printf("Hochkomma: \'\n"); printf("Anfuehrungszeichen: \"\n"); printf("Backslash: \\\n"); float i = 101.10101; printf("Weite: 3\nGenauigkeit: .*\n%.3f\n",i); printf("Weite: %20f\n",i); printf("Formatierungszeichen: %-20f %020f\n",i,i); } void warfprintf () { fprintf (stdout, "printf ist aequivalent mit fprintf\n"); } void warsscanf () { char kette1[] = "Hallo Welt\n"; char kette2[20]; sscanf(kette1, "%s", &kette2); // bis zum naechsten Leerzeichen lesen printf("sscanf: %s\n", kette2); } void warsprintf () { char string1[10]; int anzahl = 10; char gegenstand[] = "Kartoffel"; sprintf(string1, "%d kg %s\n",anzahl,gegenstand); // (zielstring, format(%s),quellstring) printf("%s",string1); } void argprintf(char *string, ...) { // variable lange Argumentliste va_list argzeiger; va_start(argzeiger,string); vprintf(string,argzeiger); va_end(argzeiger); } void warvprintf () { char hallo[] = "Hallo vprintf\n"; argprintf("Hier ein Beispiel von vprintf...."); argprintf("\n"); argprintf("%d * %d = %d\n",10,10,10*10); argprintf("%s",hallo); } void argf(char *string, ...) { // variable lange Argumentliste va_list argzeiger; va_start(argzeiger,string); vfprintf (Fd1,"%s",argzeiger); va_end(argzeiger); } void warvfprintf () { argf("%s", "Hier ein Beispiel von vprintf...."); } void args (char *ziel, char *quel, ...) { va_list argzeiger; va_start (argzeiger, quel); vsprintf(ziel,quel,argzeiger); va_end(argzeiger); } void warvsprintf () { char string[100] = "Zeichenkette"; char string2[100]; args (string2, "String: %s\n",string); printf ("%s\n",string2); } void argvs (char *ziel, char *quel, ...) { va_list argzeiger; va_start (argzeiger, quel); vsprintf(ziel,quel,argzeiger); va_end(argzeiger); } void argvv (char *string, ...) { va_list argzeiger; va_start (argzeiger, string); vfscanf (stdin,"%s", argzeiger); va_end (argzeiger); } char *myscanf(char *string, ...) { va_list argzeiger; va_start(argzeiger, string); vscanf (string, argzeiger); va_end(argzeiger); } char *myfscanf(char *string, ...) { va_list argzeiger; va_start(argzeiger, string); vfscanf (stdin,string, argzeiger); va_end(argzeiger); } char *mysscanf(char *string1,...) { va_list argzeiger; va_start(argzeiger, string1); vsscanf (string1,"%s",argzeiger); va_end(argzeiger); } void warc99 () { char string1[10]; int anzahl = 10; char gegenstand[] = "Kartoffel"; snprintf(string1, 11,"%d kg %s\n",anzahl,gegenstand); // (zielstring, format(%s),quellstring) printf("snprintf:%s\n",string1); char string[100] = "maximostore.de.vu"; char string2[100]; argvs (string2, "vsnprintf: %s\n",string); printf ("%s\n",string2); while(getchar()!='\n'); char str[20]; printf("Geben Sie eine Zeichenkette ein:"); myscanf("%s", str); printf("vscanf: %s\n",str); char str2[20]; printf("Geben Sie eine Zeichenkette:"); myfscanf("%s", str2); printf("vfscanf: %s\n",str2); while(getchar()!='\n'); char str3[20]; char str4[20] = "Hallo"; mysscanf(str4, str3); //while(getchar()!='\n'); printf("vsscanf: %s\n",str3); } void warfread () { int czeichen ; char puffer [100]; while ( (czeichen = fread (puffer, 2,30,Fd1) ) > 0) printf (" %d ",czeichen); printf("\n"); } void warfwrite () { int czeichen; char puffer[100] = "Test"; while ( (czeichen = fwrite (puffer, 2,3,Fd1) ) > 3) printf (" %d ",czeichen); printf("\n"); } void warsetbuf () { char puffer[BUFSIZ]; // 256 Byte printf("Geben Sie die Puffergroesse ein (mit NULL wird ausgeschaltet): "); scanf ("%s", puffer); // Datei muss geöffnet sein und vor Lese-u. Schreibzugriff setbuf (Fd1, puffer); /* es sollte in der funktion der Stream geschlossen werden, sonst werden fremde Speicherplätze überschrieben. Ich habe es hier gelassen, da das ein Lernprogramm sein soll und alle funktionen mit einfachem beispiel einmal durchgeführt werden sollen */ } void warsetvbuf () { char puffer[100]; int modus; printf("Geben Sie die Puffergroesse ein: "); scanf ("%s", puffer); printf("Geben SIe das Modus ein (_IOFBF = Voll, _IOLBF = Zeilen, _IONBF = keine: "); scanf ("%s", modus); setvbuf (Fd1, puffer,modus,BUFSIZ); printf ("\n"); } void warfflush () { fflush (Fd1); } void warfseek () { int art; long von; printf("Geben Sie die Art der Datei ein (Binaer oder Text) ein: \n"); printf("[1] Binaere Datei\n"); printf("[2] Textdatei\n"); scanf ("%d", &art); //while(getchar()!='\n'); if (art == 1) { //binär int wie; int i; printf ("Geben Sie die Art der Positionierung ein: \n"); printf("[1] SEEK_SET - vom Dateianfang\n"); printf("[2] SEEK_CUR - von momentanen Position\n"); printf("[3] SEEK_END - vom Dateiende an\n"); scanf ("%d", &i); if (i == 1) wie = SEEK_SET; else if (i == 2) wie = SEEK_CUR; else if (i == 3) wie = SEEK_END; else printf("Falsche Eingabe!\n"); printf("Ab welcher Bytenummer (-1 Ende): "); scanf("%ld", &von); fseek (Fd1, von, wie); } else if (art == 2) { // text long vont; vont = ftell (Fd1); fseek (Fd1, vont,SEEK_SET); } } void warfsetpos () { fpos_t *pos; fgetpos (Fd1, pos); fsetpos (Fd1, pos); } void warrewind () { rewind (Fd1); } void wartmpnam () { int i; char tempdatei [L_tmpnam], zeile [4000]; //FILE *fz; printf(".....TMP_MAX = %ld\n", TMP_MAX); printf(".....L_tmpnam = %d\n", L_tmpnam); printf(".....Funktion tmpnam\n"); for (i = 1;i <= 10;i++) { if (i%2 == 0) printf("%20d. %s\n",i, tmpnam (NULL)); else { tmpnam (tempdatei); printf("%20d. %s\n",i, tmpnam (NULL)); } } printf ("..... Funktion tmpfile\n"); if ( (Fd1 = tmpfile ()) == NULL) printf("Fehler bei tmpfile"); fputs ("Text in temporaere Datei schreiben und wieder lesen", Fd1); rewind (Fd1); if (fgets (zeile, sizeof (zeile), Fd1) == NULL) printf("Fehler bei fgets"); printf("%s\n",zeile); } void wartempnam () { char *tmpdir = "/tmp"; char *praefix = "L_tmpnam"; printf("%s\n", tempnam (tmpdir, praefix)); char *name; name = tempnam (tmpdir, praefix); printf("TMP-Datei: %s\n", tmpfile ()); // schreiben in die temporaere Datei FILE *fz; fz = fopen (name, "w"); char maximo[20] = "maximostore.de.vu"; fputs (maximo, fz); fclose (fz); } void warremove() { char datei[100] = "test"; remove (datei); } void warrename () { char alt[20]; printf("Geben SIe die neue Datei ein:"); scanf ("%s", alt); int ren; if ((ren = rename (datei, alt))) // 0 = erfolgreich printf("Die Datei wurde umbenannt\n"); else printf("Fehler beim Umbenennen\n"); } void warperror () { perror ("testausgabe"); errno = ENOENT; perror ("Hallo");} int main (void) { int m1, m2; for (;;) { // m1 printf("[1] fopen - Oeffnen einer Datei.\n"); printf("\t\tFILE *fopen (const char *datei, const char *modus)\n\n"); printf("[2] freopen - Oeffnen einer Datei mit bereits existierendem Stream.\n"); printf("\t\tFILE *freopen (const char *datei, const char *modus, FILE *fz)\n\n"); // fz = File Zeiger printf("[3] fclose - Schliessen einer Datei.\n"); printf("\t\tint fclose (FILE *fz);\n\n"); printf("[4] feof/ferror - Pruefen des EOF-und Fehler-Flags\n"); printf("\t\tint feof (FILE *fz);\n\t\tint ferror (FILE *fz);\n\n"); printf("[5] clearerr - Loeschen des Fehler-und EOF-Flags\n"); printf("\t\tvoid clearerr (FILE *fz);\n\n"); printf("[6] getchar - Lesen eines Zeichen von stdin\n"); printf("\t\tint getchar (void);\n"); printf(" putchar - Schreiben eines Zeichen auf stdout\n"); printf("\t\tint putchar (int zeichen);\n\n"); printf("[7] getc - Lesen eines Zeichens aus einer Datei\n"); printf("\t\tint getc (FILE *fz);\n\n"); printf("[8] fgetc - Lesen eines Zeichens aus einer Datei\n"); printf("\t\tint fgetc (FILE *fz)\n\n"); printf("[9] putc - Schreiben eines Zeichens in einer Datei\n"); printf("\t\tint putc (int zeichen, FILE *fz);\n\n"); printf("[10] fputc - Schreiben eines Zeichens in einer Datei\n"); printf("\t\tint fputc (int zeichen, FILE *fz);\n\n"); printf("[11] ungetc - Zurueckschreiben eines gelesenen Zeichens in Eingabepuffer\n"); printf("\t\tint ungetc (int zeichen, FILE *fz);\n\n"); printf("[12] gets - Lesen ganzer Zeilen von der Standardeingabe\n"); printf("\t\tchar *gets (char *puffer);\n\n"); printf("[13] fgets - Lesen ganzer Zeilen aus einer Datei\n"); printf("\t\tchar *fgets (char *puffer, int n, FILE *fz);\n\n"); printf("[14] puts - Schreiben ganzer Zeilen auf die Standardausgabe\n"); printf("\t\tint puts (const char *puffer);\n\n"); printf("[15] fputs - Schreiben ganzer Zeilen in eine Datei\n"); printf("\t\tint fputs (const char *puffer, FILE *fz);\n\n"); printf("[16] scanf - Formatiertes Lesen von der Standardeingabe\n"); printf("\t\tint scanf (const char *format, ...);\n\n"); printf("[17] fscanf - Formatiertes Lesen aus einer Datei\n"); printf("\t\tint fscanf (FILE *fz,const char *format, ...);\n\n"); printf("[18] printf - Formatiertes Schreiben auf die Standardeingabe\n"); printf("\t\tint printf (const char *format, ...);\n\n"); //fflush (stdin); printf("[19] fprintf - Formatiertes Schreiben in eine Datei\n"); printf("\t\tint fprintf (FILE *fz, const char *format, ...);\n\n"); printf("[20] sscanf - Formatiertes Lesen aus einem String\n"); printf("\t\tint sscanf (const char *puffer, const char *format, ...);\n\n"); printf("[21] sprintf - Formatiertes Schreiben in einen String\n"); printf("\t\tint sprintf (char *puffer, const char *format, ...);\n\n"); printf("[22] vprintf - Formatiertes Schreiben mit Argumentzeiger auf die Standardeingabe\n"); printf("\t\tint vprintf (const char *format, va_list arg);\n\n"); printf("[23] vfprintf - Formatiertes Schreiben mit Argumentzeiger in eine Datei\n"); printf ("\t\tint vfprintf (FILE *fz, const char *format, va_list arg);\n\n"); printf("[24] vsprintf - Formatiertes Schreiben in einen String mit Argumentzeiger\n"); printf("\t\tint vsprintf (char *puffer, const char *format, va_list arg);\n\n"); printf("[25] Neue printf-/scanf-Funktionen in C99\n"); printf("\t\tint snprintf (char *puffer, size_t n, const char *format,...);\n"); printf("\t\tint vsnprintf (char *puffer, size_t n, const char *format, va_list arg);\n"); printf("\t\tint vscanf (char *puffer, va_list arg), \n"); printf("\t\tint vfscanf (FILE *fz, const char *format, va_list arg); (fehlt)\n"); printf("\t\tint vsscanf (char *puffer, const char *format, va_list arg); (fehlt)\n\n"); printf("[26] fread - Binaeres Lesen ganzer Bloecke\n"); printf("\t\tsize_t fread (void *puffer, size_t blockgroesse, size_t blockzahl, FILE *fz);\n\n"); printf("[27] fwrite - Binaeres Schreiben ganzer Bloecke\n"); printf("\t\tsize_t fwrite (const void *puffer, size_t blockgroesse, size_t blockzahl, FILE *fz);\n\n"); printf("[28] setbuf - Einstellen der Pufferungsart fuer Dateien\n"); printf("\t\tvoid setbuf (FILE *fz, char *puffer);\n\n"); printf("[29] setvbuf - Einstellen der Pufferungsart fuer Dateien\n"); printf("\t\tint setvbuf (FILE *fz, char *puffer, int modus, size_t puffergroesse);\n\n"); printf("[30] fflush - Inhalte von Puffern in eine Datei übertragen\n"); printf("\t\tint fflush (FILE *fz);\n\n"); printf ("[31] fseek/ftell - Positionieren in einer Datei\n"); printf("\t\tint fseek (FILE *fz, long offset, int wie);\n\n"); printf("\t\tlong ftell (FILE *fz);\n\n"); printf("[32] fsetpos/fgetpos - Positionieren in einer Datei ab C89\n"); printf("\t\tint fsetpos (FILE *fz, const fpos_t *pos);\n"); printf("\t\tint fgetpos (FILE *fz, fpos_t *pos);\n\n"); printf("[33] rewind - Positionieren an den Dateianfang\n"); printf("\t\tvoid rewind (FILE *fz);\n\n"); printf("[34] tmpnam - Einen eindeutigen Namen fuer eine temporaere Datei erzeugen\n"); printf("\t\tchar *tmpnam (char *zeiger);\n"); printf("\t\tFILE *tmpfile (void);\n\n"); printf("[35] tempnam - Das Erzeugen von temporaeren Dateinamen (mit Directory- und Praefixvorgabe)\n"); printf("\t\tchar *tempnam (const char *directory, const char *praeffix);\n\n"); printf("[36] remove - Loeschen einer Datei\n"); printf("\t\tint remove (const char *pfadname);\n\n"); printf("[37] rename - Umbenennen einer Datei\n"); printf("\t\tint rename (const char *altname, const char *neuname);\n\n"); printf("[38] perror - Ausgabe der zu errno gehoerende Fehlermeldung\n"); printf("\t\tvoid perror (const char *meldung);\n\n"); printf("[0] Beenden\n"); scanf("%d", &m1); switch (m1) { case 0 : printf("Programm beendet!\n"); break; case 1 : printf("Modus:\n"); printf("r - zum Lesen oeffnen\n"); printf("w - zum Schreiben oeffnen\n\t\t(neu anlegen oder Inhalt einer existierenden Datei loeschen\n"); printf("a - zum Schreiben am Dateiende oeffnen\n\t\t(nicht existierende Datei wird angelegt)\n"); printf("r+ - zum Lesen und Schreiben oeffnen\n"); printf("w+ - zum Lesen und Schreiben oeffnen\n\t\t(Inhalt einer existierenden Datei wird geloescht)\n"); printf("a+ - zum Lesen und Schreiben ab Dateiende oeffnen\n"); printf("Geben Sie den Modus ein: "); char z[10]; scanf ("%s", z); warfopen(z); break; case 2 : printf("Modus:\n"); printf("r - zum Lesen oeffnen\n"); printf("w - zum Schreiben oeffnen\n\t\t(neu anlegen oder Inhalt einer existierenden Datei loeschen\n"); printf("a - zum Schreiben am Dateiende oeffnen\n\t\t(nicht existierende Datei wird angelegt)\n"); printf("r+ - zum Lesen und Schreiben oeffnen\n"); printf("w+ - zum Lesen und Schreiben oeffnen\n\t\t(Inhalt einer existierenden Datei wird geloescht)\n"); printf("a+ - zum Lesen und Schreiben ab Dateiende oeffnen\n"); printf("Geben Sie den Modus ein: "); char z1[10]; scanf ("%s", z1); warfreopen(z1); break; case 3 : warfclose (); break; case 4 : warerror (); break; case 5 : warclearerr (); break; case 6 : getputchar (); break; case 7 : wargetc (); break; case 8 : warfgetc (); break; case 9 : warputc (); break; case 10: warfputc (); break; case 11: warungetc (); break; case 12: wargets (); break; case 13: warfgets (); break; case 14: warputs (); break; case 15: warfputs (); break; case 16: warscanf (); break; case 17: warfscanf (); break; case 18: warprintf (); break; case 19: warfprintf (); break; case 20: warsscanf (); break; case 21: warsprintf (); break; case 22: warvprintf (); break; case 23: warvfprintf (); break; case 24: warvsprintf (); break; case 25: warc99 (); break; case 26: warfread (); break; case 27: warfwrite (); break; case 28: warsetbuf (); break; case 29: warsetvbuf (); break; case 30: warfflush (); break; case 31: warfseek (); break; case 32: warfsetpos (); break; case 33: warrewind (); break; case 34: wartmpnam (); break; case 35: wartempnam(); break; case 36: warremove (); break; case 37: warrename (); break; case 38: warerror (); break; } if (m1 == 0) {break; } } exit (0); }
Vielen dank