Bonjour tout le monde,
Je developpe une petite application en c++ qui permet d'envoiyer et recevir des messages sur une meme machine entre plusieurs utilisateurs (Simulation d'une boite mail)
Enfait tous les messages des differents utilisatuers sont tous stocké dans un meme fichier texte formaté de la maniere suivante :

DESTINATAIRE OBJET MESSAGE
DESTINATAIRE OBJET MESSAGE

Un message est ecrit sur une ligne, chaque champ est séparer par une tabulation.

- Premiere question : Est ce que le formatage est bon ?
- Deuxieme question : Je demande etape par etape à l'utilisateur de saisir l'objet de son message, puis le texte et enfin le destinataire.
Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
		string des,objet,msg;
 
		cout << "Veuillez Indiquez L'objet :" << endl;
		cin >> objet;
		cout << "Veuillez ecrire votre message :" << endl;
		cin >> msg;
		cout << "Destinataire :" << endl;
		cin >> des;
 
		ofstream f( "test.txt",ios_base::app);
 
		if (!f.is_open())
			cout << "Impossible d'ouvrir le fichier en écriture !" << endl;
		else
		{
			f << des << " " << objet << "	" << msg << endl;
		}
 
  f.close();

Seulement ce code ne permet pas à l'utilisateur de saisir un texte avec des retour à la ligne, des espaces ...
En plus l'objet de message peut aussi contenir des espace, or dans ce cas les espaces ne sont pas acceptés !


3- Troisieme probleme :

par exemple si je voudrais ouvrir les messages dont le destinaaire est X, comment je fais pour extraire juste les lignes du fichier dont le destinataire est X (dans notre cas qui commencent par X) ?
j'ai essaiyé ce code, mais il repond pas à mes besoins :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
		cout << "TEST" << endl; 
 
		ifstream fichier("test.txt", ios::in);
 
		if(fichier)  // si l'ouverture a fonctionné
        {
                string contenu;  // déclaration d'une chaîne qui contiendra la ligne lue
                getline(fichier, contenu);  // on met dans "contenu" la ligne
                cout << contenu << endl;  // on affiche la ligne
                getline(fichier, contenu);  // on met dans "contenu" la ligne
                cout << contenu << endl;  // on affiche la ligne
 
                fichier.close();
        }
        else
                cerr << "Impossible d'ouvrir le fichier !" << endl;
 
	}
En l'attente de vos reponse, veuillez accepeter mes salytations distinguées.