#include"fstream.h"
#include"iostream.h"
#define man 2
struct student
{
//char name[20];
long num;
char sex;
float chinese;
float math;
float english;
};
struct student stu[man];
int length=0;
int m=0;
int k=0;
void insert()
{
//char na[20];
long nu;
char s;
float ch;
float ma;
float en;
//cout<<"请输入姓名:"<<endl;
//cin>>na;
cout<<"请输入学号:"<<endl;
cin>>nu;
cout<<"请输入语文成绩:"<<endl;
cin>>ch;
cout<<"请输入数学成绩:"<<endl;
cin>>ma;
cout<<"请输入英语成绩:"<<endl;
if(length>=man)
cout<<"已经越界,请从新调整man!"<<endl;
//stu[length].name=na;
stu[length].num=nu;
stu[length].sex=s;
stu[length].chinese=ch;
stu[length].english=en;
stu[length].math=ma;
length++;
}
void f_write()
{
fstream outfile("student.dat",ios::out|ios::binary);
if(!outfile)
{cout<<"无法打开文件!"<<endl;}
for(int i=0;i<length;i++)
{
outfile.write((char*)&stu[i],sizeof(stu[i]));
}
outfile.close();
cout<<"写入成功!"<<endl;
}
void getLen()
{
student stu2[1];
fstream infile("student.dat",ios::in|ios::binary);
if(!infile)
{cout<<"无法找到文件!"<<endl;}
infile.seekg(0,ios::beg);
for(int i=0; ;i++)
{
//int t=0;
k=i;
infile.read((char*)&stu2[0],sizeof(stu2[0]));
if(stu2[0].chinese=0)
// return k;
break;
}
}
void f_read()
{
void getLen();
int q=10;///////q=k
if(q=0)cout<<"文件为空!"<<endl;//注意了
student stu3[10];//1000问题
student stu4[1];
fstream in("student.dat",ios::in|ios::out|ios::binary);
if(!in)
{cout<<"无法打开文件来读取!"<<endl;}
for(int i=0;i<=q;i++)
{
in.read((char*)&stu3[i],sizeof(stu3[i]));
}
for(int j=q;j>=0;j--)
{
for(int d=0;d<j;d++)
{
if(stu3[d].num>stu3[d+1].num)
{
stu4[0]=stu3[d];
stu3[d]=stu3[d+1];
stu3[d+1]=stu3[d];
}
}
}
for(int g=0;g<k;g++)
{
in.write((char*)&stu3[i],sizeof(stu3[i]));
cout<<"语文:"<<stu3[i].chinese<<endl;
}
in.close();
for(int p=0;p<=q;p++)
{
cout<<"语文:"<<stu3[p].chinese<<endl;//仅输出了语文
}
}
void main()
{
insert();
f_write();
f_read();
}
#include"iostream.h"
#define man 2
struct student
{
//char name[20];
long num;
char sex;
float chinese;
float math;
float english;
};
struct student stu[man];
int length=0;
int m=0;
int k=0;
void insert()
{
//char na[20];
long nu;
char s;
float ch;
float ma;
float en;
//cout<<"请输入姓名:"<<endl;
//cin>>na;
cout<<"请输入学号:"<<endl;
cin>>nu;
cout<<"请输入语文成绩:"<<endl;
cin>>ch;
cout<<"请输入数学成绩:"<<endl;
cin>>ma;
cout<<"请输入英语成绩:"<<endl;
if(length>=man)
cout<<"已经越界,请从新调整man!"<<endl;
//stu[length].name=na;
stu[length].num=nu;
stu[length].sex=s;
stu[length].chinese=ch;
stu[length].english=en;
stu[length].math=ma;
length++;
}
void f_write()
{
fstream outfile("student.dat",ios::out|ios::binary);
if(!outfile)
{cout<<"无法打开文件!"<<endl;}
for(int i=0;i<length;i++)
{
outfile.write((char*)&stu[i],sizeof(stu[i]));
}
outfile.close();
cout<<"写入成功!"<<endl;
}
void getLen()
{
student stu2[1];
fstream infile("student.dat",ios::in|ios::binary);
if(!infile)
{cout<<"无法找到文件!"<<endl;}
infile.seekg(0,ios::beg);
for(int i=0; ;i++)
{
//int t=0;
k=i;
infile.read((char*)&stu2[0],sizeof(stu2[0]));
if(stu2[0].chinese=0)
// return k;
break;
}
}
void f_read()
{
void getLen();
int q=10;///////q=k
if(q=0)cout<<"文件为空!"<<endl;//注意了
student stu3[10];//1000问题
student stu4[1];
fstream in("student.dat",ios::in|ios::out|ios::binary);
if(!in)
{cout<<"无法打开文件来读取!"<<endl;}
for(int i=0;i<=q;i++)
{
in.read((char*)&stu3[i],sizeof(stu3[i]));
}
for(int j=q;j>=0;j--)
{
for(int d=0;d<j;d++)
{
if(stu3[d].num>stu3[d+1].num)
{
stu4[0]=stu3[d];
stu3[d]=stu3[d+1];
stu3[d+1]=stu3[d];
}
}
}
for(int g=0;g<k;g++)
{
in.write((char*)&stu3[i],sizeof(stu3[i]));
cout<<"语文:"<<stu3[i].chinese<<endl;
}
in.close();
for(int p=0;p<=q;p++)
{
cout<<"语文:"<<stu3[p].chinese<<endl;//仅输出了语文
}
}
void main()
{
insert();
f_write();
f_read();
}
解决方案 »
- 基于MFC的多文档应用程序、选择了office风格(即Ribbon界面)后,属性页
- 大数相乘?或 相加?
- 哪位朋友有看雪的账号,麻烦给下个文件。非常感谢!
- WTL下PreTranslateMessage的问题
- 討論:關於 IOCP 中,該不該對同一個 socket 投遞多個 WSARecv ??? 這樣會提高效率嗎?我想聽聽大家的意見
- socket 绑定问题
- DirectX最简单的一个问题,请各位GGJJ帮我看看错在哪?
- 消息捕捉(有写过外挂式程序的非入不可)
- 关于windowplacement结构
- 怎样分割视窗并管理它们?
- 通过SSDT hook对抗Inline hook的相关问题,附网上的原文
- GDI的问题
{
cout < <"语文:" < <stu3[p].chinese < <endl;//仅输出了语文
}
就结束了,谢谢指点!
#include"iostream.h"
#define man 2
struct student
{
//char name[20];
long num;
char sex;
float chinese;
float math;
float english;
};
struct student stu[man];
int length=0;
int m=0;
int k=0;
void insert()
{
//char na[20];
long nu;
char s;
float ch;
float ma;
float en;
//cout < <"请输入姓名:" < <endl;
//cin>>na;
cout <<"请输入学号:" <<endl;
cin>>nu;
cout <<"请输入语文成绩:" <<endl;
cin>>ch;
cout <<"请输入数学成绩:" <<endl;
cin>>ma;
cout <<"请输入英语成绩:" <<endl; cin>>en; //miss,,,这个你忘了if(length>=man)
cout <<"已经越界,请从新调整man!" <<endl;
//stu[length].name=na;
stu[length].num=nu;
stu[length].sex=s;
stu[length].chinese=ch;
stu[length].english=en;
stu[length].math=ma;
length++;
}
void f_write()
{
fstream outfile("student.dat",ios::out |ios::binary);
if(!outfile)
{cout <<"无法打开文件!" <<endl;}
for(int i=0;i <length;i++)
{
outfile.write((char*)&stu[i],sizeof(stu[i]));
}
outfile.close();
cout <<"写入成功!" <<endl;
}
void getLen()
{
student stu2[1];
fstream infile("student.dat",ios::in |ios::binary);
if(!infile)
{cout <<"无法找到文件!" <<endl;}
infile.seekg(0,ios::beg);
for(int i=0; ;i++)
{
//int t=0;
k=i;
infile.read((char*)&stu2[0],sizeof(stu2[0]));
if(stu2[0].chinese=0)
// return k;
break;
} }
void f_read()
{
void getLen();
int q=10;///////q=k
if(q=0)cout <<"文件为空!" <<endl;//注意了
student stu3[10];//1000问题
student stu4[1];
fstream in("student.dat",ios::in |ios::out |ios::binary);
if(!in)
{cout <<"无法打开文件来读取!" <<endl;}
for(int i=0;i <=q;i++)
{
in.read((char*)&stu3[i],sizeof(stu3[i]));
}
for(int j=q;j>=0;j--)
{
for(int d=0;d <j;d++)
{
if(stu3[d].num>stu3[d+1].num)
{
stu4[0]=stu3[d];
stu3[d]=stu3[d+1];
stu3[d+1]=stu3[d];
}
}
}
for(int g=0;g <k;g++)
{
in.write((char*)&stu3[i],sizeof(stu3[i]));
cout <<"语文:" <<stu3[i].chinese <<endl;
}
in.close();
for(int p=0;p <=q;p++)
{
cout <<"语文:" <<stu3[p].chinese <<endl;//仅输出了语文??你的意思是要输出数学跟英语吗?在下面加就行啦 cout <<"math:"<<stu3[p].math<<endl; //miss
cout<<"english"<<stu3[p].english<<endl;
}
}
void main()
{
insert();
f_write();
f_read();
}
比如这句:
if(q=0)cout < <"文件为空!" < <endl;//注意了 应该是
if(q==0)cout < <"文件为空!" < <endl;//注意了
fstream outfile("student.dat",ios::out ¦ios::binary¦ios::app);