标签:iostream push 换行 ons eof ftime string getc int
#include<iostream>
#include<fstream>
#include<cstring>
#include<vector>
#include<ctime>
#include<cstdlib>
using namespace std;
class stu{
private:
int order;
string id,name,cla;
public:
stu(const stu &p);
stu(int orderx,string idx,string namex,string clax);
void print();
int geto(){return order;}
string geti(){return id;}
string getn(){return name;}
string getc(){return cla;}
};
stu::stu(const stu &p){
order=p.order;
id=p.id;
name=p.name;
cla=p.cla;
}
stu::stu(int orderx,string idx,string namex,string clax):order(orderx),id(idx),name(namex),cla(clax){}
void stu::print(){
cout<<order<<" "<<id<<" "<<name<<" "<<cla<<endl;
}
int main(){
vector<stu> stus;
int order;
string id,name,cla;
char ch;//读取上一行的换行符
string filename;
cout<<"输入要打开的班级"<<endl;
cin>>filename;
ifstream fin(filename);
if(!fin){
cout<<"fail to open list.txt"<<endl;
return 1;
}
while(fin>>order>>id>>name>>cla){
fin.get(ch);
stus.push_back(stu(order,id,name,cla)) ;
}
fin.close();
time_t t = time(0);
char tmp[64];
strftime( tmp, sizeof(tmp), "%Y%m%d%H%M%S.txt",localtime(&t) );
string filename2=tmp;
ofstream fout(filename2);
if(!fout){
cout<<"fail to open"<<endl;
return 1;
}
srand(time(NULL));
int n;
cout<<"继续点名输入1,否则输入2"<<endl;
while(cin>>n){
if(n==1){
int j=rand()%stus.size();
stu exm(stus[j]);
exm.print();
fout<<exm.geto()<<" "<<exm.geti()<<" "<<exm.getn()<<" "<<exm.getc()<<endl;
}
else
break;
}
fout.close() ;
return 0;
}


标签:iostream push 换行 ons eof ftime string getc int
原文地址:https://www.cnblogs.com/-19990406-whhw/p/9193361.html