C++中vector数组中的数据存入磁盘文件的问题
#include"iostream"#include<vector>#include"fstream"#include"ostream"usingnamespacestd...
#include"iostream"
#include<vector>
#include"fstream"
#include"ostream"
using namespace std;
class person
{
public:person(char *,char*);
friend ostream & operator<<(person &one, ostream &os);
private: char ID[11];
char NAME[11];
};
ostream & operator<<(person &one, ostream &os)
{
os << one.ID << one.NAME;
return os;
}
inline person::person(char *name, char *id)
{
strcpy_s(ID, sizeof(ID), id);
strcpy_s(NAME, sizeof(NAME), name);
}
int main()
{
fstream fp;
person *temp;
fp.open("数据.txt",ios_base::out);
vector<person>stu;
for (int i = 0; i < 3; i++)
{
char name[11], id[11];
cin >> name >> id;
temp = new person(name, id);
stu.push_back(*temp);
}
for (int i = 0; i <stu.size(); i++)
{
fp << stu[i];!!!!!!(在这里显示没有相匹配的操作符。。。我重载了 啊 。。求大师指导。我的目的是要把vector数组中的数据写入到文件中)
}
fp.close();
system("pause");
return 0;
}C++中vector数组中的数据存入磁盘文件的问题 展开
#include<vector>
#include"fstream"
#include"ostream"
using namespace std;
class person
{
public:person(char *,char*);
friend ostream & operator<<(person &one, ostream &os);
private: char ID[11];
char NAME[11];
};
ostream & operator<<(person &one, ostream &os)
{
os << one.ID << one.NAME;
return os;
}
inline person::person(char *name, char *id)
{
strcpy_s(ID, sizeof(ID), id);
strcpy_s(NAME, sizeof(NAME), name);
}
int main()
{
fstream fp;
person *temp;
fp.open("数据.txt",ios_base::out);
vector<person>stu;
for (int i = 0; i < 3; i++)
{
char name[11], id[11];
cin >> name >> id;
temp = new person(name, id);
stu.push_back(*temp);
}
for (int i = 0; i <stu.size(); i++)
{
fp << stu[i];!!!!!!(在这里显示没有相匹配的操作符。。。我重载了 啊 。。求大师指导。我的目的是要把vector数组中的数据写入到文件中)
}
fp.close();
system("pause");
return 0;
}C++中vector数组中的数据存入磁盘文件的问题 展开
2个回答
展开全部
你这是vs2013编译器吗?
我在vs2010 调通
#include"iostream"
#include<vector>
#include"fstream"
#include"ostream"
using namespace std;
class person
{
public:
person(char *,char*);
friend ostream & operator<<(ostream &os,person &one)
{
os << one.ID << one.NAME;
return os;
}
private:
char ID[11];
char NAME[11];
};
inline person::person(char *name, char *id)
{
strcpy(ID, id);
strcpy(NAME, name);
}
int main()
{
fstream fp;
person *temp;
int i;
fp.open("数据.txt",ios_base::out);
vector<person>stu;
for (i = 0; i < 3; i++)
{
char name[11], id[11];
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;
}
展开全部
#include"iostream"
#include <vector>
#include"fstream"
#include"ostream" // 这些 为什么是 "" 不是 <>? 有什么具体原因吗?
using namespace std;
class person
{
public:
person(char *,char*);
friend ostream & operator<<(person &one, ostream &os);
private:
char ID[11];
char NAME[11];
};
ostream & operator<<(person &one, ostream &os) // 重载 << >> 时, 第一个参数 一定是 ostream & os. 或者 istream & i, 而不能把它们当当作第二个参数.
{
只看到这, 你先改了 看行不行吧, 没有仔细看你的代码.
更多追问追答
追问
额 写过好多次重载了都没注意这个问题 。。。呵呵 谢谢你啊 嘻嘻 下次哪里调试不过了还得问你。。
追答
呵呵, 我的荣幸. 入门级C++各种问题. 都可以叫上我一起研究, 虽然我也不太会, :)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询