Binärdatei mit double Werten einlesen



  • Ich habe eine Datei mit 100 Zufallswerten vom Typ double und möchte sie in C++ auslesen und per stdout ausgeben. Er gibt mir allerdings nur viele seltsame Zahlen aus.

    #include<iostream>
    #include<vector>
    #include<fstream>
    #include<iterator>
    #include<algorithm>
    
    int main() {
    
      std::vector<double> data;
      std::ifstream inputFile("test.dat", std::ios_base::binary);
      std::istreambuf_iterator<char> iter(inputFile);
      std::copy(iter,std::istreambuf_iterator<char>{},std::back_inserter(data));
    
      inputFile.close();
    
      std::copy(data.begin(), data.end(),
      std::ostream_iterator<double>(std::cout, " "));
    
      return 0;
    }
    


  • Wie sollen aus einzelnen Bytes auch doubles werden?

    Ungetestet

    double d;
    while( inputFile.read( (char*)&d, sizeof(double)) data.push_back(d);
    


  • Suchst du sowas:

    std::ifstream inputFile("test.dat", std::ios_base::binary); 
      double d;
      while (inputFile >> d) data.push_back(d);
      inputFile.close();
    

    Oder überhaupt mal als Frage: wie sind deine Doubles denn in der Text-Datei gespeichert? Stehen da "menschenlesbare" Zahlen drin?



  • Oder überhaupt mal als Frage: wie sind deine Doubles denn in der Text-Datei gespeichert? Stehen da "menschenlesbare" Zahlen drin?[/quote]

    So klappt es ganz gut. Vielen Dank euch beiden.

    Die Datei ist nicht menschenlesbar.


Anmelden zum Antworten