Zeichen von und in Datei lesen und schreiben



  • Hi,

    Habe folgendes C-Prog geschrieben, das
    a) in einer bestimmten Datei nach einer Zeichenkette sucht
    b) Den gefunden String umgedreht am Bildschirm ausgibt
    und c)in die Datei einen Character ('X') hineinschreibt, wenn der String gefunden wurde. Hier der Code:

    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int main (int argc, char *argv[])
    {
        FILE *datei;
        char name[30];
        char n[256];
        char m[256];
        char p[256];
        char *ptr;
        int i=0;
        char ch='X';
        printf("In welcher Datei wollen Sie suchen?\n");
        gets(n);
        printf("Nach welcher Zeichenketten möchten Sie suchen?\n");
        gets(m);  
        if((datei=fopen(n,"a+")))
        {
            printf("Geoeffnet!\n");
            while(n[i]!=EOF)
            {
            i++;
            p[i]=fgetc(datei); //Dateiinhalt in Feld schreiben, zwecks Vergleich
            printf("%c\n",p[i]);
            ptr=strstr(p,m); //String-Suche
            if(ptr)
            {
                    printf("gefunden\n");
                    putc(ch,datei); //Schreiben von 'X' in Datei
                    for(i=strlen(m)-1;i>=0;i--) //verkehrt ausgeben
                       putchar(m[i]);
                    break;
            }     
            }
            fclose(datei);
    
        }
        else
            printf("Fehler!\n");
    
      getchar ();
      return 0;
    }
    

    Es funzt alles bis auf das Schreiben des 'X' in die Datei!
    Warum?

    Mfg
    Bluefoxxp



  • Auszug aus der Hilfe:

    Zwischen einem Wechsel von "Schreiben" nach "Lesen" muß allerdings ein Aufruf von fseek oder rewind stattfinden.
    Zwischen einem Wechsel von "Lesen" nach "Schreiben" muß ebenfalls fseek oder rewind aufgerufen werden, es sei denn, die Leseoperation hat das Dateiende erreicht.


Anmelden zum Antworten