Ich brauche deine Hilfe noch einmal für das Speichern und Lesen von Daten im Binärformat. Ich habe ein vector<<complex> > xy(256)
, die von der Hardware in 10 mal gelesen wird:Wie binäre Daten speichern und lesen?
vector<<complex> > xy(256);
ofstream outfile2 (outfilename2.c_str() , ofstream::binary);
....
....
for(unsigned t = 0; t < 10; t++)
{
....
....
for(unsigned i = 0; i < 256; i++)
{
xy[i] = f[i] * conj(g[i]);
}
for(unsigned i = 0; i < 256; i++)
{
outfile2 << boost::format("%20.8e") % xy[i]<< endl; // write in text
}
} // the text data will be 2560 lines of complex data, for example:
// (6.69635350e+06,7.34146150e+06)
Jetzt versuche ich, in binäre Datei zu speichern, diesen Befehl:
for(unsigned i = 0; i < 256; i++)
{
outfile2.write((const char*)& xy[i], 1 * sizeof(complex<short>));
outfile2.flush();
}
Obwohl es mir noch geben a Daten, aber wenn ich mit den Originaltextdaten vergleiche, waren sie unterschiedlich. Ich verstehe nicht warum?
Ich möchte komplexe 16 mit Fließkommadaten lesen.
Ich hoffe, dass Sie helfen können.
Vielen Dank.
@Sergey Sergey Ich hoffe, Sie können mir bei dieser Frage helfen, ich bin immer noch auf den Binärdaten verwirrend. Vielen Dank. –
* "wenn ich mit den ursprünglichen Textdaten vergleiche, waren sie anders" * anders wie? Bitte posten Sie die Beispielausgabe (plus was Sie erwartet haben). auch wie vergleichen Sie es? – UnholySheep
& xy [i] vielleicht Sinn haben, vielleicht nicht. Vektor ist kein klassisches C-Array. und Indexierungsoperator wird "emuliert" –