Problème de classe
Résolu
Khornaej
Messages postés
7
Statut
Membre
-
Dalfab Messages postés 720 Statut Membre -
Dalfab Messages postés 720 Statut Membre -
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
- 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
- Bluetooth mercedes classe a 2005 - Forum Autoradio
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