Anzeige:
Ergebnis 1 bis 4 von 4

Thema: [c] fseek() und schreiben ?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    14.05.2001
    Beiträge
    63

    [c] fseek() und schreiben ?

    Hallo,

    besteht die Möglichkeit, an die Position, die ich zuvor mit fseek() ausgemacht habe auch zu schreiben, oder kann ich damit nur fread() verwenden? Würde gerne an eine zuvor gewählte Stelle, Text in eine bestehende Datei einfügen, hat da jemand Infomaterial?

    Danke im Voraus,
    h.d.

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Reinschreiben sollte mit fwrite genau so gehen wie Lesen mit fread.
    Nur wird der Dateinhalt an dieser Stelle natürlich überschrieben.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    14.05.2001
    Beiträge
    63
    Danke für Deine Antwort, hast Du dazu eventuell Dokumentationen oder Source Code? Wenn ich versuche mit fwrite() in das File zu schreiben, überschreibe ich zwar die gewünschte Stelle, der Inhalt der darauf folgt, sieht allerdings etwas komisch aus. :-( Noch eine Frage. Welche Möglichkeite besteht denn, "Freiraum" für die neue Position zu schaffen, so dass nichts in der Zieldatei überschrieben wird?

    Danke im Voraus,
    h.d.

  4. #4
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    	char str[11] = "Hello World";
    	FILE *file = fopen("text","r+");
    	if(!file)
    		return EXIT_FAILURE;
    
    	if(-1 == fseek(file,10L,SEEK_SET))
    		return EXIT_FAILURE;
    
    	fwrite(str,1,sizeof str,file);
    
    	fclose(file);
    
    	return EXIT_SUCCESS;
    }

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •