coolkaiserabc
Goto Top

C - Datei Laden und text ersetzen

Hallo

Ich hab wieder eine Hausaufgabe und finde leider keine ordentliche Lösung...

Ich will eine Datei laden 6 Zeichen nach vorn springen und die folgenden 6 Zeichen mit X ersetzen. So hätte ich es mir gedacht (funktioniert aber nicht ....)
#include <stdio.h>

int main()
{
    int i;
    char pfad = "Ausgabe.000";  
    char c;

    FILE *Datei;
    Datei = fopen(pfad,"r+");  

    if(NULL == Datei)
        {
            printf("Datei konnte nicht gelesen werden\n");  
            //Datei muss immer geschlossen werden
            fclose(Datei);
            return 0;
        }

    for(i = 0; i < 6 ; i++)
    {
        c = fgetc(Datei);
    }

    for(i = 0; i < 6; i++)
    {
        fprintf(Datei, "%c",'X');  
    }

    fclose(Datei);

    return 0;

}

Gibt es so eine Lösung? Oder muss ich die ganze Datei Laden, zwischenspeichern, dann ersetzen, und wieder neu schreiben/speichern?

Danke für eure Hilfe

Content-Key: 667034

Url: https://administrator.de/contentid/667034

Printed on: April 25, 2024 at 04:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer May 24, 2021, updated at May 25, 2021 at 13:35:51 (UTC)
Goto Top
moin,

Wieder zu faul Bücher zu wälzen?

https://www.programiz.com/c-programming/c-file-input-output

Wenn man es Dir vorkaut, wirst Du es nie lernen Probleme selbständig zu lösen.

lks

PS: Hast geschaut, welches Ergebnis Dein Lösungsansatz liefert und was der Fehler sein könnte?

PPS: Funktioniert nicht ist keine Hilfe beim Fehlersuchen. Du solltest genau schauen (und hier schreiben), was das Ergebnis ist und inwieweit das von gewünschten Ergebnis abweicht.
Member: rubberman
rubberman May 25, 2021 at 13:21:05 (UTC)
Goto Top
//Datei muss immer geschlossen werden
Eine Datei die geöffnet wurde, ja. NULL, nein.

Gibt es so eine Lösung?
Sicher. Datei möglichst im Binärmodus öffnen, mit fseek die Anzahl Zeichen nach vorn laufen, die übersprungen werden sollen und mit bspw. fwrite o.Ä. schreiben.

Steffen
Member: Lochkartenstanzer
Lochkartenstanzer May 25, 2021 at 13:34:08 (UTC)
Goto Top
Zitat von @rubberman:

//Datei muss immer geschlossen werden
Eine Datei die geöffnet wurde, ja. NULL, nein.

Gibt es so eine Lösung?
Sicher. Datei möglichst im Binärmodus öffnen, mit fseek die Anzahl Zeichen nach vorn laufen, die übersprungen werden sollen und mit bspw. fwrite o.Ä. schreiben.

Deswegen mein HInweis auf "Literatur zu Rate ziehen" und mein Link oben. face-smile

lks