#pragma once
#include<iostream>
#include<string>
#include <istream>
#include <sstream>
using namespace std;
class Person {
private:
string name, telephone, email;
public:
Person() = default;
~Person() = default;
Person(string a, string b, string c = " ") :name(a), telephone(b), email(c) { };
void set_phone(string b);
void set_email(string c);
friend ostream & operator<<(ostream & out, const Person p);
friend istream & operator>>(istream & in, Person & p);
friend bool operator==(const Person p1, const Person p2);
};
void Person::set_phone(string ss) {
telephone = ss;
}
void Person::set_email(string sss) {
email = sss;
}
ostream & operator<<(ostream & out, const Person p) {
out << p.name << '\t' << p.telephone << '\t' << p.email << endl;
return out;
}
istream & operator>>(istream & in, Person & p) {
in >> ws;
getline(in, p.name);
in >> p.telephone >> p.email;
return in;
}
bool operator==(const Person p1, const Person p2) {
return (p1.name == p2.name && p1.telephone == p2.telephone);
}
#include <iostream>
#include <fstream>
#include <vector>
#include "Person.hpp"
int main()
{
using namespace std;
vector<Person> phone_book;
Person p;
while(cin>>p)
phone_book.push_back(p);
for(auto &i: phone_book)
cout << i << endl;
cout << boolalpha << (phone_book.at(0) == phone_book.at(1)) << endl;
ofstream fout;
fout.open("phone_book.txt");
if(!fout.is_open())
{
cerr << "fail to open file phone_book.txt\n";
return 1;
}
for(auto &i: phone_book)
fout << i << endl;
fout.close();
}
![]()