c语言写vector时头文件错误,C++ 中vector 用C语言进行文件读取

#include 

#include 

#include 

using namespace std;

class person{

public:person(string n = "noname", string num = "123"):name(n),number(num) {}

void showPerson();

public:

string name;

string number;

};

vector dataRead(vector & data)

{

FILE* fp = NULL;

fp = fopen("data.txt","rb");

person* temp;

if(fp == NULL)

{

cout <

}

int i = 0;

while(fread(&data[i],sizeof(person),1,fp))

{

temp = new person;

data.push_back(temp);

}

fclose(fp);

return data;

}

void dataWrite(vector & data)

{

FILE* fp = NULL;

fp = fopen("data.txt","wb");

if(fp == NULL)

{

cout <

}

int n = data.size();

int i = 0;

while(i 

{

fwrite(&data[i],sizeof(person),1,fp);

i ++;

}

fclose(fp);

}

int main()

{

vector data;

data = dataRead(data);

string name;

string number;

while(1)

{

cout <

cin >> name;

if(name == "#")

break;

cout <

cin >> number;

data.push_back(new person(name,number));

}

int i = 0;

for(i = 0; i 

{

data[i]->showPerson();

}

dataWrite(data);

for(i = 0; i

{

delete data[i];

}

}

用的是c语言的文件读取,C++的文件读取不会,读入vector的时候老段错误,麻烦给看下,vector里存入的是person*类型的,我类型跟指针方面有些不理解,并且vector不是很熟练,麻烦大神帮忙看下,顺便指出哪里的问题,感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值