自己做网站好不好,网站和app可以做充值余额功能,图片无法显示wordpress,it外包服务提供商有哪些一、思维导图 二、【试编程】将实例化类对象写入容器后#xff0c;写入.txt文本中#xff0c;再重新定义一个类容器#xff0c;将.txt中的内容读取出来#xff0c;输出到终端 封装一个学生的类#xff0c;定义一个学生这样类的vector容器, 里面存放学生对象#xff08;至…一、思维导图 二、【试编程】将实例化类对象写入容器后写入.txt文本中再重新定义一个类容器将.txt中的内容读取出来输出到终端 封装一个学生的类定义一个学生这样类的vector容器, 里面存放学生对象至少3个 再把该容器中的对象保存到文件中。 再把这些学生从文件中读取出来放入另一个容器中并且遍历输出该容器里的学生。 方法一使用string类型的容器读取
#include iostream
#include vector
#include fstream
using namespace std;
class Stu
{
private:string name;int id;
public://无参构造函数Stu() {}//有参构造函数Stu(string n, int i):name(n),id(i){}string getname(){return name;}int getid(){return id;}
};
int main()
{Stu s1(张三,1001);Stu s2(李四,1002);Stu s3(王五,1003);Stu s4(赵六,1004);Stu s5(小明,1005);vectorStu v;//无参构造函数v.push_back(s1);//尾插v.push_back(s2);v.push_back(s3);v.push_back(s4);v.push_back(s5);//创建一个流对象ofstream osf;//以写的方式打开文件osf.open(D:/hqyj/QTtxt/day7/stu.txt,ios::out);//写入数据for(int i0;i5;i){osf v.at(i).getname() v.at(i).getid() endl;}//关闭文件osf.close();//创建一个流对象ifstream isf;//以读的方式打开文件isf.open(D:/hqyj/QTtxt/day7/stu.txt,ios::in);//读取数据//创建一个新的容器存放读取到的数据vectorStu stu;string buf;//将从文件中的数据暂存到buf中while(getline(isf,buf))//当读不到数据时退出循环{isf buf;//从文件中读取stu.push_back(buf);//写入到容器中}for(int i0;istu.size();i){cout stu.at(i);cout endl;}//关闭文件isf.close();return 0;
}方法二使用类容器读取
#include iostream
#include vector
#include fstream
using namespace std;
class Stu
{
private:string name;int id;
public://无参构造函数Stu() {}//有参构造函数Stu(string n, int i):name(n),id(i){}string getname(){return name;}int getid(){return id;}
};
int main()
{Stu s1(张三,1001);Stu s2(李四,1002);Stu s3(王五,1003);Stu s4(赵六,1004);Stu s5(小明,1005);vectorStu v;//无参构造函数v.push_back(s1);//尾插v.push_back(s2);v.push_back(s3);v.push_back(s4);v.push_back(s5);//创建一个流对象ofstream osf;//以写的方式打开文件osf.open(D:/hqyj/QTtxt/day7/stu.txt,ios::out);//写入数据for(int i0;i5;i){osf v.at(i).getname() v.at(i).getid() endl;}//关闭文件osf.close();//创建一个流对象ifstream isf;//以读的方式打开文件isf.open(D:/hqyj/QTtxt/day7/stu.txt,ios::in);//读取数据//创建一个新的容器存放读取到的数据vectorStu stu;string buf;//将从文件中的数据暂存到buf中while(getline(isf,buf))//使用getline函数从文件流isf中逐行读取数据并将每一行的内容存储在字符串变量buf中{string name buf.substr(0,buf.length()-4);//使用substr函数从读取到的每一行中提取出姓名部分。line.length() - 4表示从当前行的开头截取到倒数第4个字符之前剩下的部分即为姓名。int id atoi(buf.substr(buf.length()-4).c_str());//使用substr函数和atoi函数从读取到的每一行中提取出学号部分。line.length() - 4表示从当前行的末尾4个字符开始截取剩下的部分即为学号。atoi函数将提取到的学号转换为整数。Stu s(name,id);//使用从文件中提取得到的姓名和学号实例化一个Stu对象stu.push_back(s);//尾插将创建的学生对象添加到容器v的末尾}for(int i0;istu.size();i){cout stu[i].getname() stu[i].getid() endl;}//关闭文件isf.close();return 0;
}