files



  • Hallo, ich möchte mittels fopen() eine datei zum lesen und schreiben öffnen.
    Falls die datei nicht existiert soll sie angelegt werden, es muss gewährleistet werden, dass bereits vorhandene Zeilen überschrieben werden können.

    Zunächst dachte ich dass der Modus "a+" genau das ist was ich suche, aber laut
    cplusplus.com :

    Open a file for reading and appending. All writing operations are performed at the end of the file, protecting the previous content to be overwritten. You can reposition (fseek, rewind) the internal pointer to anywhere in the file for reading, but writing operations will move it back to the end of file. The file is created if it does not exist.

    Das liest sich so als ob es mir nicht möglich ist, bereits vorhandenen Inhalt einer Datei zu manipulieren...

    Kann mir einer sagen wie ich am besten vorgehe?

    // Im notfall bleibt sonst nur eine bastellösung indem ich versuche die datei zum lesen zu öffnen und sie bei nicht-erfolg neu anlege



  • man fopen zeigt mir folgenden Ausschnitt:

    w or wb             Truncate to  zero  length or create file
                             for writing.
    

    Versuche es mal damit.



  • Hi,

    wie waers einfach mit:

    FILE* f = fopen("file", "r+");
    
    if(!f)
       f = fopen("file", "w");
    
    return f;
    

    Zuerst wird versucht das File mit Read + Write Access zu oeffnen, falls nicht vorhanden dann wir versucht das File zu erstellen.

    Peace & Blessed Love C0de4Fun


Anmelden zum Antworten