dateien verkehrt ausgeben



  • hej,
    kann mir wer bei dieser aufgabe weiterhelfen. ich soll aus einer datei einen nach dem anderen satz herauslesen und in die selbe datei verkehrt hineinschreiben. das lesen mach ich mit fgets, aber beim hinausschreiben schreibt er mir nur einen satz???

    void write(char *datei, char buf[a]){
    FILE *fp;
    fp = fopen(datei,"w");

    a = strlen(buf);
    if(fp != NULL){
    while(a >= 0){
    fprintf(fp,"%c",buf[a]);
    a--;
    }
    fclose(fp);
    }
    }

    void read(char *datei, char buf[a]){
    FILE *fp;

    fp = fopen(datei,"r");

    if(fp != NULL){
    while(fgets(buf,a,fp) != NULL){
    printf("%s", buf);
    }
    fclose(fp);
    } else {
    printf("Die Datei ist nicht vorhanden!");
    }
    }

    mfg



  • Hallo,

    ich habe mal ein paar anmerkungen in deinen Quellcode geschrieben.

    void write(char *datei, char buf[a]){ // der Funktionsnamen ist ungünstig gewählt, da schon in unistd.h vorhanden
                                          // buf[a] ist nicht korrekt, besser char *buf;
        FILE *fp = fopen(datei,"w");      // dies löscht immer wieder die Datei, besser "a"
    
        a = strlen(buf);                  // a ist nicht bekannt, besser int a = strlen(buf);
        if(fp != NULL){
            while(a >= 0){
                fprintf(fp,"%c",buf[a]);  // warum nicht fprintf("%s", buf); ?
                a--;
            }
            fclose(fp);
        }
    }
    
    void read(char *datei, char buf[a]){  // siehe oben: read schon vorhanden!
                                          // buf[a] falsch
        FILE *fp = fopen(datei,"r");
    
        if(fp != NULL){
            while(fgets(buf,a,fp) != NULL){ // a nicht bekannt
                printf("%s", buf);
            }
            fclose(fp);
        } else {
            printf("Die Datei ist nicht vorhanden!");
        }
    }
    

    Bitte verwende die cpp /cpp oder code /code Tags um Code zu posten.
    Danke

    Um dir bei deinem Problem weiterhelfen zu können, reichen die beiden
    Funktionen nicht aus. Es wäre nicht schlecht, wenn du den Aufruf der
    Funktionen auch noch mit posten würdest.

    Gruß mcr


Anmelden zum Antworten