QQ41190152 2018-07-05 00:09 采纳率: 0%
浏览 996
已结题

vector<class user> vec中的数据如何写入文件中并读取出来。

#include
#include
#include
#include
#include
using namespace std;
using std::ostream_iterator;
using std::istream_iterator;
class user{
public:
user(){};
~user(){};
string name;
string id;
string sex;
};

istream & operator >>(istream & in, const user & x)
{
in.read((char *)(user *)&x, sizeof(user));
return in;
}

ostream & operator<<(ostream & out, const user & x)
{
out.write((char *)(user *)&x, sizeof(user));
return out;
}

int main()
{

vector u;
user u1;
ofstream ofs;
ofs.open("JAR.txt",ios_base::binary);
for(int i=0;i {
cin>>u1.name>>u1.id>>u1.sex;
u.push_back(u1);
}
copy(u.begin(),u.end(),ostream_iterator(ofs));
ifstream ifs("JAR.txt", ios_base::binary);
istream_iterator iecg(ifs),iend;
vector v(iecg,iend);
vector x;
copy(v.begin(),v.end(),x.begin());
cout<<u.size()<<v.size()<<x.size()<<endl;

for(int i=0;i<x.size();i++)
{
cout<<x.at(i).name<<x.at(i).id<<x.at(i).sex<<endl;;
}
}
类似这样。

  • 写回答

1条回答 默认 最新

  • weixin_42069499 2018-07-05 00:57
    关注

    1,若vector中的元素类型不是stl中的类,即为vector vec, T 是自定义类型,那么可以在T类结构中重载运算符<<。

    例如:

    #include"iostream"
    #include
    #include"fstream"
    #include"ostream"
    using namespace std;
    class person
    {
    public:
    person(char ,char);
    friend ostream & operator<<(ostream &os,person &p)//友元函数定义在person类中,可以操作person中的成员。
    {
    os << .Id << p.Name;
    return os;
    }
    private:
    char Id[10];
    char Name[10];
    };
    inline person::person(char *name, char *id)
    {
    strcpy(Id, id);
    strcpy(Name, name);
    }
    int main()
    {
    fstream file;
    person *temp;
    int i;
    file.open("result.txt",ios_base::out);
    vectorstu;
    for (i = 0; i < 3; i++)
    {
    char name[10], id[10];
    cin >> name >> id;
    temp = new person(name, id);
    stu.push_back(*temp);
    }
    for (i = 0; i <stu.size(); i++)
    {

    fp << stu[i];
    }
    fp.close();
    system("pause");
    return 0;
    }
    2,若vector中元素为基本数据类型,比如int,则先把vector中的元素转换成一个string,再整行输出。

    评论

报告相同问题?

悬赏问题

  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导