下班了,都辛苦了,帮小白调个简单的程序,多谢
下班了,都辛苦了,帮小白调个简单的程序,谢谢
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class News{
public:
News ()
{number=0;name=string("unkonw");score1=0;score2=0;}
News(int value1,string value2,double value3,double value4);
int getnumber()
{ return number;}
double getscore1()
{ return score1;}
double getscore2()
{ return score2;}
string name;
private:
int number;
double score1,score2;
};
News::News(int value1,string value2,double value3,double value4)
{
number=value1;
name=value2;
score1=value3;
score2=value4;
}
int main(){
News student[3]={
News(1217,"周瑶",86.0,90.0),
News(1212,"刘畅",89.0,88.0),
News(1213,"李毅",93.0,98.0)};
ofstream outf("text.txt"); //向文件输入数据
int i;
if(!outf)
{ cout<<"cannot open";
exit(1);
}
outf<<"学号"<<' '<<' ';
outf<<"姓名"<<' '<<' '<<' ';
outf<<"高数"<<' '<<' ';
outf<<"线代"<<"\r\n";
for( i=0;i<=2;i++){
outf<<student[i].getnumber()<<' '<<' ';
outf<<student[i].name<<' '<<' '<<' ';
outf<<student[i].getscore1()<<' '<<' '<<' ';
outf<<student[i].getscore2()<<"\r\n";
}
ofstream fout("text.dat",ios::out|ios::binary|ios::app); //以二进制方式向文件输入数据
if(!fout)
{ cout<<"cannot open";
exit(1);
}
for( i=0;i<=2;i++)
{
fout.write(reinterpret_cast<char *>(&student[i]),sizeof(student[i]));
}
fout.close();
ifstream inf("text.dat",ios::in|ios::binary); //将数据再次输入内存
News stu[3];
for(i=0;i<=2;i++)
{
inf.read(reinterpret_cast<char *>(&stu[i]),sizeof(stu[i]));
cout<<stu[i].getscore1();
}
inf.close();
return 0;
}
------解决方案--------------------
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class News{
public:
News ()
{number=0;name=string("unkonw");score1=0;score2=0;}
News(int value1,string value2,double value3,double value4);
int getnumber()
{ return number;}
double getscore1()
{ return score1;}
double getscore2()
{ return score2;}
string name;
private:
int number;
double score1,score2;
};
News::News(int value1,string value2,double value3,double value4)
{
number=value1;
name=value2;
score1=value3;
score2=value4;
}
int main(){
News student[3]={
News(1217,"周瑶",86.0,90.0),
News(1212,"刘畅",89.0,88.0),
News(1213,"李毅",93.0,98.0)};
ofstream outf("text.txt"); //向文件输入数据
int i;
if(!outf)
{ cout<<"cannot open";
exit(1);
}
outf<<"学号"<<' '<<' ';
outf<<"姓名"<<' '<<' '<<' ';
outf<<"高数"<<' '<<' ';
outf<<"线代"<<"\r\n";
for( i=0;i<=2;i++){
outf<<student[i].getnumber()<<' '<<' ';
outf<<student[i].name<<' '<<' '<<' ';
outf<<student[i].getscore1()<<' '<<' '<<' ';
outf<<student[i].getscore2()<<"\r\n";
}
ofstream fout("text.dat",ios::out|ios::binary|ios::app); //以二进制方式向文件输入数据
if(!fout)
{ cout<<"cannot open";
exit(1);
}
for( i=0;i<=2;i++)
{
fout.write(reinterpret_cast<char *>(&student[i]),sizeof(student[i]));
}
fout.close();
ifstream inf("text.dat",ios::in|ios::binary); //将数据再次输入内存
News stu[3];
for(i=0;i<=2;i++)
{
inf.read(reinterpret_cast<char *>(&stu[i]),sizeof(stu[i]));
cout<<stu[i].getscore1();
}
inf.close();
return 0;
}
------解决方案--------------------