#include "stdafx.h"
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class student
{
public:
void set_grate()
{
cout<<"输入学生所在年级:"<<endl;
cin>>grate;
}
void set_name()
{
cout<<"输入学生姓名:"<<endl;
cin>>name;
}
void set_ID()
{
cout<<"输入学生学号:"<<endl;
cin>>ID;
}
int get_grate()
{
return grate;
}
int get_ID()
{
return ID;
}
string get_name()
{
return name;
}
private:
int ID;
string name;
int grate;
};
int main()
{
student sts[3];
cout<<"请输入学生信息!"<<endl;
for(int i=0;i<3; i++)
{
sts[i].set_grate();
sts[i].set_name();
sts[i].set_ID();
}
ofstream ofs("d:\\a.txt");
if(!ofs)
{
cout<<"open failed"<<endl;
}
for(int i=0;i<3; i++)
{
ofs.write(reinterpret_cast<char*>(&sts[i]),sizeof(sts[i]));
ofs.flush();
}
ofs.close();
ifstream ifs("d:\\a.txt");
if(ifs)
{
for(int i=0;i<3; i++)
{
ifs.read(reinterpret_cast<char*>(&sts[i]),sizeof(sts[i]));
cout<<sts[i].get_grate()<<sts[i].get_name()<<sts[i].get_ID()<<endl;
}
}
else
cout<<"if failed"<<endl;
ifs.close();
system("pause");
return 0;
}
本周实验课任务:建立一个student类,有三个私有成员(年级、学号、姓名),该类有六个公有成员函数,分别是设置和得到其三个私有成员数据;在主函数中,从屏幕输入学生所在班级、学生学号及学生姓名,存入到student对象数组里。把student对象数组里的数据输出到文本文件中,输出结束后关闭文件;同时从刚才那个文件中读入数据,并将数据存储在student对象数组中,同时把数据显示在屏幕中。
**加粗样式**
此代码的问题在于文本中的是二进制的,所以显现出来的是乱码。
c++创建学生文本文件
最新推荐文章于 2023-03-21 17:02:49 发布