begin process at 2012 05 29 21:04:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

problème de changement de données d'un tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème de changement de données d'un tableau

lundi 20 novembre 2006 à 20:37:17 | problème de changement de données d'un tableau

martram

Membre Club

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;
 }
}

mardi 21 novembre 2006 à 09:20:16 | Re : problème de changement de données d'un tableau

louis14


dans tes fonctions il faut passer les paramètres par  pointeur ou par réléférence. Ici c'est normal que tes données reprennent leur valeurs à la sortie de la fonction. Si tu mets le code de ta fonction dans main tu verras que tes valeurs seront bien lues.

int lireinfo(char nom_prenom[max_employes][30], int nb_heures[max_employes], float taux_horaire[max_employes], char nom_fichier[40])
doit devenir par exemple
int lireinfo( char* nom_prenom, int max_employes,int max_nom, int* nb_heures,float* taux_horaires, char* nom_fichier) -
louis14
mardi 21 novembre 2006 à 17:08:22 | Re : problème de changement de données d'un tableau

martram

Membre Club
j'ai trouvé la solution.. mon trableau de charactère nom_prenom n'était pas assez grand, ce qui provoquait une erreur de fonctionnement..il mettait tous les noms dans la premiere cellule plutôt que d'en mettre un seul..puis tout les noms moins le premier pour la 2ième cellule, ainsi de suite..
j'ai du mal à expliquer le pouquoi encore...mais si je met nom_prenom[max_employes][32] plutôt que nom_prenom[max_employes][30] ça fonctionne à merveille la ligne à saisir contenant exactement 30 caractères(+1 à l'arrêt)

alors merci d'avoir essayé


Cette discussion est classée dans : fichier, int, max, nb, employes


Répondre à ce message

Sujets en rapport avec ce message

c++ creation d'un fichier texte a nom variable [ par sloaneaaaa ] ben voila je voudrai creer un fichier texte auquel je puisse donner n'importe quel nom ms g des erreurs que je comprend pasle nom de fichier est ds un Fonction qui retourne un tableau [ par Kurul1 ] Bonjour à tous   J'ai une classe contenant un tableau a deux dimensions comme variable private  Ce que je voudrais c'est une fonction ayant pour param Probleme avec une source [ par n3m3s1s ] Erreur de code , je copi bien ce que me dit le livre pourtant #include #define MAXLIGNE 1000 int lireligne(char ligne[], char de[]); void copier(ch TEdit problème [ par vez_from_hell ] bonsoirje travail avec Borland C++ Builder 5 et je souhaite que mon TEdit devienne une variable int.exemple://---------------------------------------- Probleme de creation de fichier avec DevC++ BloodShed 4.9.8.0 [ par Anysse ] Bonjour, donc moi j ai un petit probleme avec la creation d un fichier en utilisant des fonctions de haut niveau : fopen et fclose, lors de la compila Prob de modulo ou de code ? [ par NeoZ ] Salut, je voudrais stocker un nombre dans un tableau, ou tout du moins, stocker chaque chiffre dans une variable, et j'ai fait ce bout de code, mais i Fatal signal: Segmentation Fault (SDL Parachute Deployed) [ par broks ] Je ne comprends vraiment pas pourkoa ca ne marche pas...C'est surement un probleme au niveau de la fonction saisi puisque je plante lorsque je dois sa Position curseur dans un fichier texte [C++] [ par MissSixty ] Salut !Je cherche à comprendre le bogue dans un programme tout simple qui me permet de récupérer la position du curseur (en nombres de lignes) en fin passage de MSDOS à win32 Application: problème de CAST! [ par malik7934 ] Hello,en un mot : H-E-L-P-!-!-!J'ai un problème qui m'énerve depuis deux jours...Si j'exécute le programme suivant dans VC++:#include "mycrypt.h"#prag Multiplication d'une matrice par un scalaire [ par skrime ] Bonjour, j'ai un exercice à faire qui consiste à multiplier une matrice par un scalaire en C (la prof ne veut pas qu'on se serve des boucles FOR), je


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,505 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales