fstream+binär+cast



  • Hallo,

    Ich suche den Fehler im folgenden Programm, bzw. die Lösung:

    #include <iostream>
    #include <fstream>
    #include <winunix.h> //_getch() für win/linux
    using namespace std;
    
    struct tdaten
    {
      int i;
      char test;
      float pi;
    }daten, daten2;
    
    int main()
    {
      daten.i=98;
      daten.test=65;
      daten.pi=3.14f;
    
      fstream f("test.txt", ios::binary|ios::out);
      f.write(&daten, sizeof(daten));  //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
      f.close();
      cout << "geschrieben...\n";
      _getch();
    
      fstream f2("test.txt", ios::binary|ios::in);
      f2.read(&daten2, sizeof(daten2));
      f2.close();
      cout << "gelesen...\n";
      _getch();
    
      cout << daten2.i << "\t" << daten.test << "\t" << daten.pi;
      _getch();
    }
    

    Danke schomal...


  • Mod

    Fehlermeldung? Dort dürfte schon alles wesentliche drinstehen...



  • #include <iostream>
    #include <fstream>
    
    struct daten_t__
    {
        unsigned int i;
        char test;
        float pi;
    };
    
    int main()
    {
        daten_t daten;
        daten.i    = 98;
        daten.test = 65;
        daten.pi   = 3.14f;
    
        std::ofstream file_stream("test.txt", std::ios::binary | std::ios::out);
        file_stream.write(reinterpret_cast<const char*>(&daten), sizeof(daten));
        file_stream.close();
        std::cout << "Daten geschrieben ..." << std::endl;
    }
    

    ?



  • Danke, hatte es schon mit (char[*]) versucht, gab immer noch den Fehler...

    Wie les ich das denn jetzt wieder aus?


Anmelden zum Antworten