Bonjour,
j'ai débuté un programme qui devrait lire des données dans un fichier pour ensuite les traiters, et je suis bloqué puisqu'après avoir lu les données dans le fichier et les avoir mi dans un tableau, les données sont changées tel que l'affichage d'une seule cellule du tableau me donnera plusieurs résultats, mais ne devrait qu'en contenir un seul..
mon code (note.. une ligne de code mise en commentaire avant la fonction d'affichage me prouve que les données sont bien entrée dans le tableau..cependant ce tableau semble se faire modifier par la suite, je ne sais pourquoi)
tout aide serait apprécié..merci
#include<fstream>
#include<iostream>//librairie cin cout
#include<iomanip>//pour setw io...flag..
#include<cstring>
using namespace std;
const int max_employes=80;
//définition des fonctions
int lireinfo(char nom_prenom[max_employes][30], int nb_heures[max_employes], float taux_horaire[max_employes], char nom_fichier[max_employes]);
void afficheremployes(char nom_prenom[max_employes][30], int nb_heures[max_employes], float taux_horaire[max_employes], int retour_nb_employes);
/*void salairemax(char nom_prenom[max_employes][30], int nb_heures[max_employes], float taux_horaire[max_employes], int retour_nb_employes);
ajustersalaire(int, int);
afficheremployés(char, char, int, int);*/
void main(void)
{
//déclaration des variables
char nom_prenom[max_employes][30];
int nb_heures[max_employes];
float taux_horaire[max_employes];
char nom_fichier[max_employes];
int retour_nb_employes;
//demande à l'utilisateur d'entrer le nom du fichier à ouvrir
cout << "Quel est le nom du fichier sauvegarde pour les employes? ";
//prend la réponse dans la variable nom_fichier
cin >> nom_fichier;
//appel des fonctions
retour_nb_employes=lireinfo(nom_prenom, nb_heures, taux_horaire, nom_fichier);
afficheremployes(nom_prenom, nb_heures, taux_horaire, retour_nb_employes);
salairemax(nom_prenom, nb_heures, taux_horaire, retour_nb_employes);
/*ajustersalaire();
afficheremployes();*/
}
//fonction de lecture des information dans le fichier
int lireinfo(char nom_prenom[max_employes][30], int nb_heures[max_employes], float taux_horaire[max_employes], char nom_fichier[40])
{
int nb_employes=0;
ifstream fichier_employes;
fichier_employes.open(nom_fichier);
if(fichier_employes.fail())
{
cout << "Erreur d'ouverture de fichier";
}else{
while(!fichier_employes.eof())
{
fichier_employes.getline(nom_prenom[nb_employes], 33 , ':');
fichier_employes >> nb_heures[nb_employes] >> taux_horaire[nb_employes];
// cout << nom_prenom[nb_employes] << ":" << nb_heures[nb_employes] << " * $ "<< taux_horaire[nb_employes] << "= $" << nb_heures[nb_employes]*taux_horaire[nb_employes] << endl;
nb_employes++;
}
}
fichier_employes.close();
return nb_employes;
}
//fonction d'Affichage des données lu dans le fichier
void afficheremployes(char nom_prenom[max_employes][30], int nb_heures[max_employes], float taux_horaire[max_employes], int retour_nb_employes)
{
//déclaration de variable
int nb_lu;
//affiche le nombre d'employés
cout << "nombre total d'employes = " << retour_nb_employes << endl << endl;
//boucle permettant d'afficher les noms d'employés ainsi que leur nombre d'heures de travail par semaine, taux horaire et salaire par semaines
for(nb_lu=0;nb_lu<retour_nb_employes;nb_lu++){
cout << nom_prenom[nb_lu] << ":" << nb_heures[nb_lu] << " * $ "<< taux_horaire[nb_lu] << "= $" << nb_heures[nb_lu]*taux_horaire[nb_lu] << endl;
}
}