Code c++

Fermé
stifi - 27 févr. 2010 à 16:41
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 28 févr. 2010 à 01:53
Bonjour, à tous voila j'ai fait un petit code qui permet de supprimer un employé avec enregistrement dans le fichier après suppression; mais voila le problème c'est qu'il ne supprime pas. si quelqu'un peut m'aider svp !
au fait j'ai crée un vector<Patron>tab afin de récupérer les valeurs du fichier et les mettre dans la RAM afin d'avoir un traitement plus facile !

code:


void Gerer :: Supprimer_Patron(){ // Suppression des informations du patron



system("cls");

charger_employe("patron.txt"); // Je charge les informations du fichier vers la RAM
// Afin d'avoir des données dynamiques

cout << " \n\n\tVeuillez entrer le nom: " ; string h; cin >> h;
cout << " \n\tVeuillez entrer le pr\202nom: "; string k; cin >>k;
string j = "patron.txt";



if(rechercher(h,k,j) == true) // On va chercher si l'employé existe !
{
for(unsigned int i=0; i<tab.size();i++)
{
if((tab[i].getNom() == h)&&(tab[i].getPrenom() == k))
{
// Je ne comprend pas pourquoi les instructions ci-dessous ne marche pas !

// delete tab[i];
//tab[i].erase();
}
}
recopie_fichier(); // Appel de la methode qui permet d'enregistrer dans le fichier après suppression !
}
}




void Gerer :: recopie_fichier(){


ofstream fichier("patron.txt", ios::out | ios::trunc); // Ouverture du fichier patron en écriture

if((tab.size()!= 0))
{
string ab,ba,cd,dc,ef,fe; //-------------------------------------------------
int xy,yx,zt,tz,xt; // Valeurs intermédiares
float sv,vs; //---------------------------------------------------

for(unsigned int i=0; i<tab.size(); i++)
{
ab = tab[i].getNom();
ba = tab[i].getPrenom();
cd = tab[i].getAdresse();
dc = tab[i].getEtc();
ef = tab[i].getSex();
xy = tab[i].getAge();
yx = tab[i].getCin();
zt = tab[i].getEnfant();
tz = tab[i].getjj();
fe = tab[i].getMois();
xt = tab[i].getAnnee();
sv = tab[i].getBase();
vs = tab[i].getPrime();

if(fichier){

fichier<<ab <<endl <<ba <<endl <<cd <<endl <<dc <<endl <<ef <<endl <<xy <<endl <<yx <<endl <<zt <<endl <<tz <<endl <<fe <<endl <<xt <<endl <<sv <<endl<<vs <<endl;
fichier<<"******************************************************************"<<endl;
}

else{

msg_urgente("Impossible d'\202crire dans le fichier patron.txt !!");
break;
}
}
}

else
msg_urgente("Votre entreprisse n'a plus de patron\n Veuillez recruter un autre s'il vous plait !!!");

}
A voir également:

1 réponse

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
28 févr. 2010 à 01:53
Disons qu'il nous faudrait un code compilable pour qu'on puisse commencer à envisager de chercher. Mais si je peux te donner déjà quelques conseils.

1) Évite autant que possible les appels à system (ton programme va dépendre de la plateforme sur laquelle il tourne),

2) À moins que tu saches ce que tu fais, évite les using namespace std;. Les using namespace ne doivent par ailleurs jamais être faits dans des headers,

3) Utilise std::endl au lieu de \n

4) Nomme tes variables correctements (plus d'une lettre !) sinon ton programme sera irrécupérable dans quelques temps.

5) Essaye de te fixer des conventions de nommage pour tes variables et tes fonctions.
- A priori les variables, méthodes, et fonctions ne devraient jamais commencer par une majuscule. Soit tu les notes avecCeStyle, soit avec_ce_style.
- Les constantes définie par un #define devraient être écrite en majuscules.
- Certains programmeurs préfixent leur variable pour rappeler leur type (par exemple iCount si c'est un entier qui sert à compter, sFilename si c'est une std::string qui stocke un nom de fichiers etc...).
- Certains postfixent les types avec un _t (par exemple mon_type_t).

Enfin, quand tu postes un message sur un forum, essaye de tirer partie des balises de mise en forme qui sont à ta disposition. Par exemple tu aurais pu utiliser le style code en le sélectionnant et en cliquant sur le bouton <> situé au dessus de la boîte dans laquelle tu as saisi ton message.

Bonne chance
0