Problem beim lesen aus Binär Datei mit Double-Werten
-
Hallo zusammen!
Ich habe ein Problem beim lesen aus einer Datei mit
double tmp[ANZ]; stream.read((char*)&tmp,8*ANZ);Allerdings stimmen nur die ersten beiden Werte danach kommen nur noch Double-Werte die nicht in der Datei stehen.
Kann mir jemand sagen wo das Problem liegt oder einen Tip geben was ich ändern muss?
MfG Skysurfer
-
Hallo,
ich hatte auch so ein Problem, double-Werte aus einer Bin-Datei lesen.
Lösung:
ifstream in;
in.open("Datei.bin", ios::binary | ios::in );void* tmp= new char[8]; // sizeof(double)
vector<double*> Vektor;
in.read( (char*)tmp, 8);
for( ; !in.eof(); )
{
double* t = new double; // Speicher für Wert anfordern
*t = *(double*)tmp; // Wert speichernVektor.push_back(t);
in.read( (char*)tmp, 8); // nächster Wert
}
in.close();p.s. #include <fstream.h> nicht vergessen
-
Danke erst einmal für Deine Antwort, aber es hat bei meinem Problem leider nicht geholfen.
Die Werte werden aus der Datei gelesen, allerdings stimme nur die ersten beiden Werte die folgenden Werte passen dann nicht mehr zu meiner Datei.
Mein momentaner Quelltext lautet:fstream stream(filename.c_str(),ios::in|ios::binary); if(stream.is_open()) { void* tmp = new char[8]; for (int i = 0;i<3200;i++) { stream.read((char*)tmp,8); *posptr = *(double*)tmp; //an dieser Stelle im Debug modus geprüft auf richtigkeit der Werte posptr++; } stream.close(); }Wie gesagt es stimmen jeweils nur die ersten beiden Werte. Danach kommt quasi nichts korrektes mehr und das kann ich mir nicht so ganz erklären.
Kennt jemand dieses Problem und weiss wie man es behebt?Grüsse
-
wie sieht denn der posptr aus? also die Initialisierung