problem mit fwrite und fread



  • hi.
    ich möchte ein programm schreibe, welches ein float-array aus einer datei liest. am anfang funktioniert es auch ganz gut, nach einiger zeit kommen komische werte raus. deshalb habe ich ein testprogramm geschrieben:

    int main(int argc, char* argv[])
    {
        int d[20];
        for(int i = 0; i < 20;i++)
        {
            d[i] = i;
            printf("%d", d[i]);
        }
        FILE *f = fopen("test.txt", "w");
    
        for(int i = 0; i< 20; i++)
        {
            fwrite(&d[i], 4, 1, f);
        }
    
        fclose(f);
    
        FILE *g = fopen("test.txt", "r");
    
        for(int i = 0; i< 20;i++)
        {
            fread(&d[i], 4,1,g);
           :arrow:   printf("%d\n", d[i]);
        }
        fclose(g);
    
        return 0;
    }
    

    nach dem einlesen der datei wird beim pfeil folgendes ausgegeben:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    234881024
    251658240
    268435456
    285212672
    301989888
    318767104
    0
    wieso wird ab der 13 so ein schwachsinn ausgegeben??? bin für jede hilfe dankbar.



  • Hallo

    float-array

    int d[20];

    😕

    Desweiteren hat dein geposteter Code nichts mit dme Builder zu tun. Nicht mal was mit C++. Sondern das gehört ins Ansi-C Forum.
    Wenn du C++ schreiben willst, dann benutz std::ifstream

    bis bald
    akari



  • Dieser Thread wurde von Moderator/in KlausB aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ok. das mit int war ein test. wenn ich float benutze kommt was ähnliches raus.


Anmelden zum Antworten