代码:
#include <iostream.h>
#include <fstream.h>
struct Vector
{
float x;
float y;
float z;
};
void main()
{
char FILE[] = "output.dat";
Vector myVector;
myVector.x = 106504.80f;
myVector.y = 2822.24f;
myVector.z = -3282.62f;
ofstream fout(FILE);
fout.write(reinterpret_cast<char *>(&myVector),sizeof(myVector));
fout.close();
Vector aVector;
ifstream fin(FILE);
fin.read(reinterpret_cast<char *>(&aVector.x), sizeof(aVector.x));
cout << aVector.x <<endl;
fin.read(reinterpret_cast<char *>(&aVector.y), sizeof(aVector.y));
cout << aVector.y <<endl;
fin.read(reinterpret_cast<char *>(&aVector.y), sizeof(aVector.z));
cout << aVector.z <<endl;
fin.close();
}
有哪位知道为啥输出结果是
106505
2822.24
-1.07374e+008
而不是
106504.80
2822.24
-3282.62
吗