/* ex_6_6.c++ */
#include <string>
#include <fstream>
#include <iostream>
using namespace std;

class uneClasse {
	int unEntier;
	string uneChaine;
public:
	uneClasse (int i = 0, string s = "") : unEntier(i), uneChaine(s) {};
	int getEntier() const {return unEntier;};
	string getChaine() const {return uneChaine;};

	friend ostream& operator<< (ostream& os, const uneClasse& uc);
	friend istream& operator>> (istream& is, uneClasse& uc);
};

ostream& operator<< (ostream& os, const uneClasse& uc) {
	return (os << uc.unEntier << ':' << uc.uneChaine);
}

istream& operator>> (istream& is, uneClasse& uc) {
	char c;
	uc.uneChaine = "";

	is >> uc.unEntier >> c;
	if (c==':')
		while (c!='\n') {
			is.get(c);
			uc.uneChaine+=c;
		}

	return is;
}

int main(void) {
	uneClasse obj;
	cin >> obj;
	cout << "Objet Saisi: " << obj;

	ofstream output("sauve");
	if (output) {
		output << obj;
		output.close();
	}
	ifstream input("sauve");
	if (input) {
		input >> obj;
		cout << "Objet du fichier : " << obj;
	}
	
	return 0;
}
