Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3044 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Les fichiers : lecture, écriture (help)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Les fichiers : lecture, écriture (help)

n°1745537
cathy9999
Posté le 12-06-2008 à 16:10:50  profilanswer
 

Bonjour, je souhaite réaliser une gestion de clients en c++, c'est à dire me permettre d'afficher, ajouter, modifier ou supprimer un client qui serait présent dans un fichier texte a chaque ajout.  
J'ai réalisé classe.h regroupant la classe mere, mon souci est que je ne sais pas comment manier une lecture, ecriture ou suppression dans un fichier, j'aimerais si possible un exemple.  
classe.h

Code :
  1. #include <iostream>
  2. #include <string>
  3. class PERSONNE
  4. {
  5. protected:
  6. std::string adresse;
  7. std::string cp;
  8. std::string ville;
  9. int annee_entree;
  10. int annee_sortie;
  11. public:
  12. void afficher();
  13. void add();
  14. void del();
  15. };
  16. class CLIENT :public PERSONNE
  17. {
  18. private:
  19. std::string nom;
  20. std::string prenom;
  21. public:
  22. CLIENT();
  23. CLIENT(const std::string& _nom, const std::string& prenom ,const std::string & add,const std::string& _cp,const std::string& _ville,int _entree, int _sortie)
  24. {
  25. nom= _nom;
  26. prenom= _prenom;
  27. adresse=_add;
  28. cp=_cp;
  29. ville=_ville;
  30. annee_entree=_entree;
  31. annee_sortie=_sortie;
  32. }
  33. void afficher();
  34. void add();
  35. void del();
  36. };


 
 
main.cpp
 

Code :
  1. #include "classes.h"
  2. CLIENT::CLIENT():PERSONNE()
  3. {}
  4. void CLIENT::afficher()
  5. {
  6. //nom|prenom|adresse|cp|ville|année entre| année sortis  
  7. using namespace std;
  8. cout << prenom << adresse << cp << ville << annee_entree << annee_sortie << endl;
  9. }
  10. void CLIENT::add()
  11. { }
  12. void CLIENT::del()
  13. {}


 
je cherche a faire les procedures add et del = ajouter et supprimer


Message édité par cathy9999 le 12-06-2008 à 16:11:43
mood
Publicité
Posté le 12-06-2008 à 16:10:50  profilanswer
 

n°1745555
Elmoricq
Modérateur
Posté le 12-06-2008 à 16:32:05  profilanswer
 

Pour la gestion des fichiers en C++, il faut manier les stream.
 
Plus d'infos ici : http://www.cplusplus.com/reference/iostream/fstream/

n°1745564
cathy9999
Posté le 12-06-2008 à 16:42:38  profilanswer
 

je sais tout cela mais je ne comrpend rien, il me faut un exemple

n°1745568
Elmoricq
Modérateur
Posté le 12-06-2008 à 16:59:36  profilanswer
 

Code :
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. int main (void) {
  7.   fstream filestr ("foo.bar", fstream::in | fstream::out | fstream::app);
  8.  
  9.   if ( filestr.is_open() ) {
  10.     filestr << "its teh mighty example, lol\n";
  11.  
  12.     filestr.seekg(ios_base::beg);
  13.  
  14.     string foobar;
  15.     getline(filestr, foobar);
  16.     cout << foobar << endl;
  17.  
  18.     filestr.close();
  19.   }
  20.   else
  21.      cerr << "FAIL§§§\n";
  22.  
  23.   return 0;
  24. }
 


C'est pas comme s'il n'y en avait pas, des snippets, sur le site que j'ai indiqué. [:dawao]


Message édité par Elmoricq le 12-06-2008 à 17:16:52
n°1745579
cathy9999
Posté le 12-06-2008 à 17:23:35  profilanswer
 

oui mais un exemple par rapport a ma classe, comment le fichier va recuperer les données?

n°1745586
Elmoricq
Modérateur
Posté le 12-06-2008 à 17:28:43  profilanswer
 

Hmm. C'est un exemple que tu veux, ou qu'on te le fasse ? :??:
 
Qu'est-ce que tu ne comprends pas dans l'utilisation des streams ?

n°1745591
cathy9999
Posté le 12-06-2008 à 17:35:48  profilanswer
 

ben jprefere etre franche et qu'on me fasse juste pour la fonction de l'ajouter dans un fichier ! pour quelqu'un de debutant comme moi, c'est difficile de comprendre avec une autre structure que la sienne qu'on a realisé..je prefere dire la verité

n°1745595
Elmoricq
Modérateur
Posté le 12-06-2008 à 17:39:11  profilanswer
 

En ce cas, ta demande est hors charte, il est interdit de demander du travail tout fait.
 
Merci de lire les règles de la section Programmation : http://forum.hardware.fr/forum2.ph [...] 544&cat=10

n°1745598
cathy9999
Posté le 12-06-2008 à 17:47:41  profilanswer
 

Mais je demande pas un travail tout fait! je demande qu'on me montre le fonctionnement d'une fonction add qui ajouterais dans un fichier

n°1745606
Elmoricq
Modérateur
Posté le 12-06-2008 à 17:56:33  profilanswer
 

Ben y a un exemple juste au-dessus. [:mlc]
 
J'ouvre filestr, et ensuite j'y colle "its teh mighty example" avec l'opérateur <<.

mood
Publicité
Posté le 12-06-2008 à 17:56:33  profilanswer
 

n°1745615
kyntriad
Posté le 12-06-2008 à 18:06:04  profilanswer
 

Elmoricq a écrit :

En ce cas, ta demande est hors charte, il est interdit de demander du travail tout fait.

 

Merci de lire les règles de la section Programmation : http://forum.hardware.fr/forum2.ph [...] 544&cat=10

 

:lol:

 

Sinon remplace main par add et tu aura en gros ton exemple mais bon c'est laid :o

 


Message édité par kyntriad le 12-06-2008 à 18:07:02

---------------
You can't start a fire with moonlight
n°1745628
cathy9999
Posté le 12-06-2008 à 18:17:48  profilanswer
 

#include <iostream>
#include <fstream>  
 
using namespace std;  
int main (void)  
{   fstream filestr ("test.txt", fstream::in | fstream::out | fstream::app);    
   if ( filestr.is_open() ) {      
filestr << prenom << adresse << cp << ville << annee_entree << annee_sortie << endl;      
  filestr.seekg(ios_base::beg);        
string foobar;      
getline(filestr, foobar);      
cout << foobar << endl;    
  filestr.close();    
}    
else    
  cerr << "FAIL§§§\n";    
 return 0;
}
 
est ce comme cela?

n°1745637
kyntriad
Posté le 12-06-2008 à 19:02:16  profilanswer
 

Tu peux vérifier par toi-même en fait, genre en utilisant un compilateur et en faisant tourner ton programme.
 
Si ça t'affiche ce que tu veux c'est que c'est ok en l'occurence. Sinon t'en déduit ce qu'il y a a déduire et tu corriges...


---------------
You can't start a fire with moonlight
n°1745842
Elmoricq
Modérateur
Posté le 13-06-2008 à 10:24:30  profilanswer
 

cathy9999 a écrit :

#include <iostream>
#include <fstream>

 

using namespace std;
int main (void)
{   fstream filestr ("test.txt", fstream::in | fstream::out | fstream::app);  
   if ( filestr.is_open() ) {    
filestr << prenom << adresse << cp << ville << annee_entree << annee_sortie << endl;    
  filestr.seekg(ios_base::beg);        
string foobar;    
getline(filestr, foobar);    
cout << foobar << endl;    
  filestr.close();  
}  
else    
  cerr << "FAIL§§§\n";  
 return 0;
}

 

est ce comme cela?

 

Ce n'est pas plus compliqué en effet. [:romf]
Mais comprends-tu ce que fais ce code ?
Car en fait, il écrit dans le fichier (opérateur << ), puis il se replace au tout début du fichier (seekg), et il lit la première ligne (getline) pour l'afficher (cout << ).

 

D'ailleurs, comme tu peux le remarquer, l'utilisation de cout ressemble étrangement à ce que tu fais pour écrire dans un fichier. Eh bien c'est normal : cout est un stream, sauf qu'au lieu de taper dans un fichier, il tape sur la sortie standard (i.e. l'écran dans la majeure partie des cas).


Message édité par Elmoricq le 13-06-2008 à 10:24:48

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Les fichiers : lecture, écriture (help)

 

Sujets relatifs
Comment imprimer les fichiers html d'un forum?[résolu] Compatibilité du codage des fichiers, serveurs windows et L..
Recensement de fichiers en utilisant VBAimport de fichiers d'un autre répertoire
integration flash / html pb ajustement help[resolu]différences entre deux fichiers
Trie sur fichierscommunication entre 2 fichiers .c pas dans le meme dossier grace a un
Gérer des fichiers texteshelp me :/ PHP/Mysql et pspad
Plus de sujets relatifs à : Les fichiers : lecture, écriture (help)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR