Dateioperationen



  • Hallo,

    ich kenne mich in der C-Syntax nicht aus.

    Ich schreibe mit:

    if ((fileobj = fopen("C:\\myfile.dat", "wb"))==NULL){
       //...  
       }
    int i=9999;
    if (fwrite(&i, sizeof(i), 1, fileobj) !=1){
       //...
       }
    fclose(fileobj);
    

    in die Datei. Das scheint auch zu klappen. Es steht nämlich was drin.

    Danach versuche ich die Datei auszulesen:

    if ((fileobj = fopen("C:\\myfile.dat", "rb"))==NULL){
        //...
    } 
    seek(fileobj,sizeof(i)*0,SEEK_SET); // for die erste "Struktur" springen  
    
    int s;
    fread(&s,sizeof(int),1,fileobj); // "Struktur" in s einlesen
    

    Das klappt aber nicht. Ich bekomme mit printf nur Fehlermeldungen oder kryptische Zeichen auf den Bildschirm.

    Wie bekomme ich eine Iteger-Variable oder ein Iteger-Array ausgelesen und angezeigt. Ich hoffe auf eure Hilfe.

    Vielen Dank.



  • fseek(), nicht seek()

    seek() hab ich garnicht gefunden in den standard libs.

    guck mal dort:
    http://www.cppreference.com/



  • also bis auf die seek/fseek()-sache scheint dein code einwandfrei zu sein. das mit dem "b"-flag beim öffnen hast du auch richtig gemacht.

    vielleicht hast du ja bei printf() was falsch gemacht und versehentlich printf("%s",&s); statt printf("%d",s); geschrieben. bei der ganzen zeigerwirtschaft kann man sich schon mal verhaspeln 😉


Anmelden zum Antworten