Problème de classe
Résolu
Khornaej
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai le message suivant lorsque je débugue :
error: request for member 'ChargerFic' in 'calendrier', which is of non-class type 'CCalendrier(std::vector<std::__cxx11::basic_string<char> >,
std::vector<std::__cxx11::basic_string<char> >, std::vector<std::__cxx11::basic_string<char> >,
std::vector<std::__cxx11::basic_string<char> >, std::vector<std::__cxx11::basic_string<char> >,
std::vector<std::__cxx11::basic_string<char> >)'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
à la ligne 17 du fichier main.cpp, je ne comprends absolument pas pourquoi...
OBJECTIF:
ouvrir un fichier texte d'un nombre de lignes inconnu, de 6 champs séparés par un délimiteur (;) et terminé par ce même délimiteur
stocker chaque champs dans un tableau différent: tous les premiers champs de chaque ligne dans le tableau0, ... jusqu'à tableau5
voici les codes:
-------------------------------------------------------------------------
/
----------------------------------------------------------------------
Merci par avance pour votre aide
Cordialement, khornaeg
j'ai le message suivant lorsque je débugue :
error: request for member 'ChargerFic' in 'calendrier', which is of non-class type 'CCalendrier(std::vector<std::__cxx11::basic_string<char> >,
std::vector<std::__cxx11::basic_string<char> >, std::vector<std::__cxx11::basic_string<char> >,
std::vector<std::__cxx11::basic_string<char> >, std::vector<std::__cxx11::basic_string<char> >,
std::vector<std::__cxx11::basic_string<char> >)'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
à la ligne 17 du fichier main.cpp, je ne comprends absolument pas pourquoi...
OBJECTIF:
ouvrir un fichier texte d'un nombre de lignes inconnu, de 6 champs séparés par un délimiteur (;) et terminé par ce même délimiteur
stocker chaque champs dans un tableau différent: tous les premiers champs de chaque ligne dans le tableau0, ... jusqu'à tableau5
voici les codes:
//CCalendrier.hpp #ifndef CCALENDRIER_H_INCLUDED #define CCALENDRIER_H_INCLUDED #include <vector> #include <string> //========================= class CCalendrier { private : std::vector<std::string> calendDate; std::vector<std::string> calendHeure; std::vector<std::string> calendEquipDom; std::vector<std::string> calendScorDom; std::vector<std::string> calendScorExt; std::vector<std::string> calendEquipExt; public : CCalendrier(); CCalendrier (std::vector<std::string> c_Date,std::vector<std::string> c_Heure,std::vector<std::string> c_EquipDom,std::vector<std::string> c_ScorDom,std::vector<std::string> c_ScorExt,std::vector<std::string> c_EquipExt); ~CCalendrier(); void ChargerFic(); void Afficher(); }; //========================= #endif //CCALENDRIER_H_INCLUDED
-------------------------------------------------------------------------
/
/CCalendrier.cpp #include <sstream> #include <iostream> #include <fstream> #include "CCalendrier.hpp" //========================= CCalendrier::CCalendrier(std::vector<std::string> c_Date,std::vector<std::string> c_Heure,std::vector<std::string> c_EquipDom,std::vector<std::string> c_ScorDom,std::vector<std::string> c_ScorExt,std::vector<std::string> c_EquipExt) { std::vector<std::string> calendDate=c_Date; std::vector<std::string> calendHeure=c_Heure; std::vector<std::string> calendEquipDom=c_EquipDom; std::vector<std::string> calendScorDom=c_ScorDom; std::vector<std::string> calendScorExt=c_ScorExt; std::vector<std::string> calendEquipExt=c_EquipExt; } //========================= void CCalendrier::ChargerFic() { char nomfichier[20]; std::string ligne; const std::string lim = ";"; std::string enreg; std::cout << "Entrer le nom du fichier: "; std::cin.get (nomfichier,20); // get c-string std::ifstream fichier(nomfichier, std::ios::in); if(fichier) // si l'ouverture a réussi { while ( std::getline( fichier, ligne ) ) { for (int j=0; j<=5; j++) { int deb=0; std::size_t postn = ligne.find(lim); std::string newligne = ligne.substr(postn); enreg = ligne.substr(deb,postn); std::cout << "CAPACITE"<< j<< "NOMBRE ELEMENTS"<< j<< '\n'; switch(j) { case 0:calendDate.push_back(enreg); case 1:calendHeure.push_back(enreg); case 2:calendEquipDom.push_back(enreg); case 3:calendScorDom.push_back(enreg); case 4:calendScorExt.push_back(enreg); case 5:calendEquipExt.push_back(enreg); } newligne = ligne.substr(postn + 1); deb = postn + 1; ligne = newligne; } } } else std::cerr << "Impossible d'ouvrir le fichier !" << std::endl; } //========================= void CCalendrier::Afficher() { }
----------------------------------------------------------------------
//main.cpp #include "CCalendrier.hpp" //#include "CCategories.hpp" //========================= int main() { std::vector<std::string> c_Date; std::vector<std::string> c_Heure; std::vector<std::string> c_EquipDom; std::vector<std::string> c_ScorDom; std::vector<std::string> c_ScorExt; std::vector<std::string> c_EquipExt; //========================= CCalendrier calendrier(std::vector<std::string> c_Date,std::vector<std::string> c_Heure,std::vector<std::string> c_EquipDom,std::vector<std::string> c_ScorDom,std::vector<std::string> c_ScorExt,std::vector<std::string> c_EquipExt); // appel du constructeur avec 100 comme argument calendrier.ChargerFic(); ERREUR //calendrier.Afficher(); //std::cout << "TAILLE : "<< c_TC.capacity() << " " << c_TC[0] << " " << "NBR ELEMS : " << c_NE<< " " << c_TC[53] << '\n'; }
Merci par avance pour votre aide
Cordialement, khornaeg
A voir également:
- Problème de classe
- Logiciel de classement de photos gratuit - Guide
- Classe ram - Guide
- Logiciel de classement de documents gratuit - Télécharger - Bureautique
- Bluetooth mercedes classe a 2005 - Forum Autoradio
- Dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? ✓ - Forum Excel
3 réponses
Bonjour,
Pour appeler une fonction ou un constructeur, il faut fournir les paramètres nécessaires, mais en aucun cas il ne faut indiquer leur type avant (c'est la déclaration qui a besoin du type.)
Pour appeler une fonction ou un constructeur, il faut fournir les paramètres nécessaires, mais en aucun cas il ne faut indiquer leur type avant (c'est la déclaration qui a besoin du type.)
CCalendrier calendrier(c_Date, c_Heure, c_EquipDom, c_ScorDom, c_ScorExt, c_EquipExt); // appel du constructeur avec 100 comme argument