如何解决将向量写入文件c ++
在这里,我有一个称为联系人的结构
typedef struct contacts
{
string name; //{jhonathan,anderson,felicia}
string nickName; //{jhonny,andy,felic}
string phoneNumber; // {13453514,148039,328490}
string carrier; // {atandt,coolmobiles,atandt }
string address; // {1bcd,gfhs,jhtd }
} contactDetails;
vector <contactDetails> proContactFile;
我试图将向量中的数据写入输出文件。为此,我编写了以下代码
ofstream output_file("temp.csv");
ostream_iterator<contactDetails> output_iterator(output_file,"\n");
copy(begin(proContactFile),end(proContactFile),output_iterator);
但是这段代码总是给我一个错误。我也想通过以下方式将数据写入文件。
Name,Nick name,Phone number,Carrier,Address
我的代码有什么问题?
解决方法
std::ostream_iterator<T>
为类型operator<<
调用T
。您需要为std::ostream& operator<<(std::ostream& os,const contactDetails& cont)
编写代码,以便ostream_iterator
进行迭代并写入其输出流。
typedef struct contacts
{
string name; //{jhonathan,anderson,felicia}
string nickName; //{jhonny,andy,felic}
string phoneNumber; // {13453514,148039,328490}
string carrier; // {atandt,coolmobiles,atandt }
string address; // {1bcd,gfhs,jhtd }
} contactDetails;
vector <contactDetails> proContactFile;
std::ostream& operator<<(std::ostream& os,const contactDetails& cont)
{
os << cont.name << "," << cont.nickName << ",";
os << cont.phoneNumber << "," << cont.carrier << ",";
os << cont.address << endl;
return os;
}
,
void deleteContact() //Delete Feature
{
ofstream output_file("temp.csv");
int selectContact;
cout << "Which Contact you want to delete ? Enter the relevent index " << endl;
cin >> selectContact;
if (selectContact > proContactFile.size()) {
cout << "Invalid entry";
}
else {
proContactFile.erase(proContactFile.begin() + (selectContact - 1));
cout << "Delete successfully";
}
std::ostream& operator<<(std::ostream & os,const contactDetails & cont)
{
os << cont.name << ",";
os << cont.phoneNumber << ",";
os << cont.address << endl;
return os;
}
output_file.close();
}
嘿,以前的错误消失了,现在只说了expected a ';'
。但是这里什么都没丢失。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。