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.