Binary Files



  • Hm,
    versuch mal ein rewind nach dem öffen der Datei, damit setzt Du den Dateipointer auf den Anfang der Datei. :p



  • rewind? kannst du das bitte noch ein bisschen erläutern...

    ich bin erst c anfänger...



  • achja einfach rewind(Datei1);
    oder?

    hat nix gebracht... noch immer die neue zahl am ende...



  • Example

    /* REWIND.C: This program first opens a file named
    * REWIND.OUT for input and output and writes two
    * integers to the file. Next, it uses rewind to
    * reposition the file pointer to the beginning of
    * the file and reads the data back in.
    */

    #include <stdio.h>

    void main( void )
    {
    FILE *stream;
    int data1, data2;

    data1 = 1;
    data2 = -37;

    if( (stream = fopen( "rewind.out", "w+" )) != NULL )
    {
    fprintf( stream, "%d %d", data1, data2 );
    printf( "The values written are: %d and %d\n", data1, data2 );
    rewind( stream );
    fscanf( stream, "%d %d", &data1, &data2 );
    printf( "The values read are: %d and %d\n", data1, data2 );
    fclose( stream );
    }
    }

    Output

    The values written are: 1 and -37
    The values read are: 1 and -37

    PS: ein Buch über C++ nit den Befehlen drin ist immer hilfreich 🙂



  • Dann gibt es noch die HARTE Methode.
    1. lies die Datei aus und schreib sie in den Speicher
    2. manipuliere die Werte
    3. schreibe die Datei zurück



  • es muss doch noch eine normale methode geben...

    sicher könnte ich alle zahlen bis zur eingegebenen position einlesen
    diese dann in eine neues file eine neue zahl dranhängen und dann die restlichen alten zahlen, die ich gespeichert habe auch daranhängen...

    aber das wär ja ziemlich aufwändig... gibts da wirklich nichts anderes?



  • das a+ im fopen parameter heißt doch lese und schreibe AN DATEIENDE, oder?

    kanns daran liegen?



  • Eine Idee/Versuch noch.
    fopen(datei,"r+")



  • wow das wars!!!
    wie kann das sein???

    r+ bedeutet ja lesen und schreiben

    aber nicht für binary files...

    aber es funktioniert beim ersten test...

    hoffe auch bei den weiteren tests!

    VIELEN DANK SCHON MAL

    ich schreib dann noch ob das wirklich funktioniert!



  • ja, mit W+ leeres dokumen zum lesen und schreiben
    mit a+ denspaß am dateiende
    und dann blieb ja nurnoch r+ 😃


Anmelden zum Antworten