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 ....)
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 667034
Url: https://administrator.de/contentid/667034
Ausgedruckt am: 24.11.2024 um 20:11 Uhr
3 Kommentare
Neuester Kommentar
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.
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.
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.
lks