64,672
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<fstream>
#include<string>
#include<vector>
#include<cstdlib>
using namespace std;
class student
{
public:
void Input();
friend istream& operator >>(istream& in,student& s);
friend ostream& operator <<(ostream& out,student& s);
private:
string name;
string number;
size_t score;
};
void student::Input()
{
cout<<"请输入姓名: ";
getline(cin,name);//这句话怎么不实现呢?
cout<<"请输入学号: ";
cin>>number;
cout<<"请输入总成绩: ";
cin>>score;
}
istream& operator >>(istream& in,student& s)
{
in>>s.name;
in>>s.number;
in>>s.score;
return in;
}
ostream& operator <<(ostream& out,student& s)
{
out<<s.name<<"\t"<<s.number<<"\t"<<s.score<<endl;
return out;
}
void Save(vector<student>& s)
{
string filename;
cout<<"请输入文件名: ";
cin>>filename;
ofstream outfile;
outfile.open(filename.c_str(),ios::out);
if(!outfile.is_open())
{
cerr<<"Can not open the file!"<<endl;
exit(0);
}
outfile<<"姓名\t学号\t总成绩"<<endl;
for(vector<student>::iterator iter=s.begin();iter!=s.end();++iter)
outfile<<*iter<<endl;
cout<<"学生信息保存成功!"<<endl;
}
void Read(vector<student>& s)
{
string filename;
cout<<"请输入文件名: ";
cin>>filename;
ifstream infile;
infile.open(filename.c_str(),ios::in);
if(!infile.is_open())
{
cerr<<"Can not open the file!"<<endl;
exit(0);
}
cout<<"读取的学生信息为: "<<endl;
string word;
getline(infile,word);
cout<<word<<endl;
student stu;
while(!infile.eof())
{
infile>>stu;
cout<<stu;
}
}
int main()
{
vector<student> s;
student stu;
size_t count;
string num;
cout<<"请输入录入学生的个数: ";
cin>>count;
for(size_t ix=0;ix!=count;++ix)
{
cout<<"\n请录入第"<<ix+1<<"个学生的信息.\n"<<endl;
stu.Input();
s.push_back(stu);
}
cout<<"保存学生信息"<<endl;
Save(s);
cout<<"读取学生信息"<<endl;
Read(s);
system("pause");
return 0;
}
// a.cpp : Defines the entry point for the console application.cout<<"请输入姓名: ";
cin.ignore(1,'\n');
getline(cin,name);
//这句话怎么不实现呢?
cout<<"请输入学号: ";
cin>>number;
//这么写
void student::Input()
{
cout<<"请输入姓名: ";
getline(cin,name);
cin.ignore(1,'\n');
cout<<"请输入学号: ";
cin>>number;
cout<<"请输入总成绩: ";
cin>>score;
}