前面得写操作是没有问题得,在于后面得读操作!我是想读出20°30°得度数以及他们的sin,cos但是读出得结果是显示度数会从029不知道问题在哪里,也用过seekg进行定位还是不行!
#include <iostream>
#include <fstream>
#include <cmath>
#define pi 3.14
#include <iomanip>
using namespace std;
int main()
{
fstream infile;
int i,x,y;
infile.open("sincos.bin",ios::out|ios::in|ios::binary);
if(!infile)
{
cout<<"error"<<endl;
exit(1);
}
for( i=0;i<90;i++)
{
infile.write((char *)&i,sizeof(int));
x=sin((i/180)*pi);
y=cos((i/180)*pi);
infile.write((char *)&x,sizeof(double));
infile.write((char *)&y,sizeof(double));
}
//long pos=infile.tellp();
//cout<<pos;
infile.close();
cout<<"度数"<<setw(5)<<"sin"<<setw(5)<<"cos"<<endl;
infile.open("sincos.bin",ios::in|ios::out|ios::binary);
if(!infile)
{
cout<<"error"<<endl;
exit(1);
}
for(i=20;i<30;i++)
{
infile.read((char *)&i,sizeof(int));
infile.read((char *)&x,sizeof(double));
infile.read((char *)&y,sizeof(double));
cout<<i<<setw(5)<<x<<setw(5)<<y<<endl;
}
infile.close();
return 0;
}