IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Erreur compilation : iostream, algorithm, etc


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 136
    Par défaut Erreur compilation : iostream, algorithm, etc
    Bonjour,

    alors voila mon problème. J'ai un fichier Analyse.cpp, qui doit permettre d'analyser la phrase rentrée par l'utilisateur en ligne de commande, et de le guider si jamais il a fait des erreurs.
    Le but étant de manipuler des formes géométriques.
    Mon programme marchait très bien, jusqu'a ce que je modifie quelque détails et la => une série d'erreurs, que je trouve très bizarre. Si jamais quelqu'un a une idée de la source de l'erreur, je suis preneur !

    Merci d'avance

    Main.cpp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <sstream>
    #include <string>
    #include <iostream>
    #include <limits> 
    #include "Analyse.h"
     
    using namespace std;
     
    Analyse analiseur;
     
    int main()
    {
    	string entree = "";
    	string::size_type pos = 0;
    	vector<string> tableau; // tableau permettant de recuperer chaque mot
     
    	cout << "Bonjour, quelle operation voulez vous effectuer ?" << endl;
    	getline(cin, entree); // Récupération de la ligne complete ( pas de coupure aux espaces )
    	cout << "Analyse de la chaine ..." << entree << endl;
    	 /* création d'un flux pour séparer chaque mot */
    	stringstream ss;
    	/* remplissons le flux avec la chaine récupérée */
    	ss<<entree;
    	/* déclarons une chaine temporaire pour récupérer les mots */
    	string temp;
    	/* tant que nous récupérons une chaine de caractères au départ du flux  */
    	while (ss>>temp) {
    		/* nous l'insérons dans notre tableau */
    		analiseur.Transfo_minuscule(temp); // Mettre tout en minuscule
    		tableau.push_back(temp);
    		cout<<tableau.back()<<endl;
    	}
     
     
    if (tableau.size() > 0)
    	analiseur.AnalyserAction(tableau);
    else 
    	cout << "Saisie vide : les actions possibles sont 'CreerFigure', 'supprimerFigure', 'deplacerFigure', 'supprimerGroupe'" << endl;
     
    cout << "Appuyez sur Enter pour continuer..."; // portable
    cin.ignore( numeric_limits<streamsize>::max(), '\n' );
    }
    Analyse.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    #include "Analyse.h"
    #include <iostream>
    #include <vector>
    #include <string>
    #include <cctype>
    #include <algorithm>
     
    using namespace std;
    bool erreur = false; // Permet de detecter s'il y a une erreur dans la ligne de commande
     
    Analyse::Analyse()
    {
    }
     
    struct mon_tolower
    { 
        char operator()(char c) const 
        {
            return tolower(static_cast<unsigned char>(c));
        } 
    };
     
    // Méthode permettant de mettre un string en minuscule
    	void Analyse::Transfo_minuscule(string &chaine) {
    	transform(chaine.begin(), chaine.end(), chaine.begin(), mon_tolower());
    	}
     
     
     
    void Analyse::AnalyserAction(vector<string> &tableau) 
    {
    	cout << "Debut de l'analyse ..." << endl;
    	if (tableau[0] == "creerfigure") {
    		 cout << "Creation de figure ..." << endl;
    		 TesterNomFigure(tableau);
    			}
    	else if (tableau[0] == "creergroupe") 
    		 cout << "creation de groupe ... " << endl;
    	else if (tableau[0] == "supprimer") 
    		 cout << "Suppresion ..." << endl;
    	else if (tableau[0] == "deplacerfigure") 
    		 cout << "Deplacement de figure ..." << endl;
    	else 
    		cout << "Erreur de saisie. Les actions possibles sont 'CreerFigure', 'supprimerFigure', 'deplacerFigure', 'supprimerGroupe'" << endl;
     
    }
     
    void Analyse::TesterNomFigure(vector<string> &tableau)
    {
    	if (tableau[1] == "carre" ||  tableau[1] == "rectangle" || tableau[1] == "triangle" || tableau[1] == "polygone" || tableau[1] == "cercle"){ 
    		cout << "Vous souhaitez donc creer un " << tableau[1] << endl;
    		TesterCouleurFigure(tableau);
    		}
    	else {
    		setErreur();
    		cout << "Nom de la figure non valide :" << endl;
    		cout << "Pour creer une figure, la syntaxe est : 'CreerFigure TypeDeFigure NomDeLaFigure CouleurDeLaFigure Coordonnee(s)'" << endl; 
    		cout << "Ce programme vous permet de creer des carres, des rectangles, des triangles, des cercles et tout type de polygone" << endl;
    	}		
    }
     
    void Analyse::TesterCouleurFigure(vector<string> &tableau)
    {
    	if (tableau[3] == "jaune" ||  tableau[3] == "noir" || tableau[3] == "vert" || tableau[3] == "bleu"){ // || "triangle" || "polygone" || "rectangle")
    		cout << "Vous souhaitez donc creer un " << tableau[1] << " de couleur " << tableau[3] << endl;
    		cout << tableau.size() << endl;
    		TesterCoordonneeFigure(tableau);
    		}
    	else {
    		setErreur();
    		cout << "Couleur de la figure non valide :" << endl;
    		cout << "Pour creer une figure, la syntaxe est : 'CreerFigure TypeDeFigure NomDeLaFigure CouleurDeLaFigure Coordonnee(s)'" << endl; 
    		cout << "Couleurs possibles : jaune, noir, vert, bleu" << endl;
    	}		
    }
     
    void Analyse::TesterCoordonneeFigure(vector<string> &tableau){
    	if (tableau[1] == "polygone") {
    		if (tableau.size() < 10) {
    			cout << "Coordonnes manquant : un polygone est compose de 3 points minimums" << endl;
    			}
    		else
    			cout << "Faire verification si coordonnes sont des ints. Si oui, la creation du polygone peut commencer" << endl;
    	}
    	else {
    		if (tableau.size() != 6) {
    			cout << "Erreurs indication coordonnes. Veuillez indiquer le coordonne du centre du cercle, ou du point inferieur a gauche de votre figure si c'est un carre, un rectangle ou un triangle" << endl;
    			}
    		else
    			cout << "Apres avoir verifie que coordonnes sont des ints, on peut commencer la creation de la figure" << endl;
    	}
    }
     
    void Analyse::setErreur()
    {
    	erreur = true;
    }
     
    void Analyse::AnalyseSuppression(vector<string> &tableau) {
    	if (tableau.size() != 2){
    		cout << "Erreur dans la suppression. Pour supprimer : 'Supprimer' 'NomDeLobjet'" endl;
    		setErreur();
    		}
    	else 
    		cout << "Si figure existe ( a verifier ) suppression effective" << endl;// Verifier l'existence de l'objet avant de lancer la suppression
    }
     
    Analyse::~Analyse()
    {
    	//ne rien faire
    }
    Analyse.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #ifndef _ANALYSE_
    #define _ANALYSE
     
    #include <vector>
    #include <string>
     
     
    class Analyse
    {
    private:
     
     
    public:
    	//constructeur
    	Analyse();
     
    	//destructeur 
    	~Analyse();
     
    	void Transfo_minuscule(std::string &chaine);
    	void AnalyserAction(std::vector<std::string> &tableau);
    	void TesterNomFigure(std::vector<std::string> &tableau);
    	void TesterCouleurFigure(std::vector<std::string> &tableau);
    	void TesterCoordonneeFigure(std::vector<std::string> &tableau);
    	void AnalyseSuppression(std::vector<std::string> &tableau){
    	void setErreur();
    };
     
    #endif
    Erreurs obtenues

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    c:\program files\microsoft visual studio 9.0\vc\include\iostream(12) : error C2059: erreur de syntaxe*: 'namespace'
    c:\program files\microsoft visual studio 9.0\vc\include\iostream(12) : error C2334: jetons inattendus avant '{'*; corps apparent de la fonction ignoré
    c:\program files\microsoft visual studio 9.0\vc\include\cctype(19) : error C2059: erreur de syntaxe*: 'namespace'
    c:\program files\microsoft visual studio 9.0\vc\include\cctype(19) : error C2334: jetons inattendus avant '{'*; corps apparent de la fonction ignoré
    c:\program files\microsoft visual studio 9.0\vc\include\algorithm(14) : error C2059: erreur de syntaxe*: 'namespace'
    c:\program files\microsoft visual studio 9.0\vc\include\algorithm(14) : error C2334: jetons inattendus avant '{'*; corps apparent de la fonction ignoré
    c:\program files\microsoft visual studio 9.0\vc\include\algorithm(4627) : error C2059: erreur de syntaxe*: 'namespace'
    c:\program files\microsoft visual studio 9.0\vc\include\algorithm(4627) : error C2334: jetons inattendus avant '{'*; corps apparent de la fonction ignoré
    y:\documents\projgeo\analyse.cpp(8) : error C2059: erreur de syntaxe*: 'namespace'
    y:\documents\projgeo\analyse.cpp(8) : error C2238: jetons inattendus avant ';'
    y:\documents\projgeo\analyse.cpp(9) : error C2864: 'Analyse::erreur'*: seules les données membres static const intégrales peuvent être initialisées dans une classe
    y:\documents\projgeo\analyse.cpp(12) : error C2535: 'Analyse::Analyse(void)'*: fonction membre déjà définie ou déclarée
            y:\documents\projgeo\analyse.h(15)*: voir la déclaration de 'Analyse::Analyse'
    y:\documents\projgeo\analyse.cpp(24) : error C2061: erreur de syntaxe*: identificateur 'string'
    y:\documents\projgeo\analyse.cpp(30) : error C2061: erreur de syntaxe*: identificateur 'vector'
    y:\documents\projgeo\analyse.cpp(109) : error C2535: 'Analyse::~Analyse(void)'*: fonction membre déjà définie ou déclarée
            y:\documents\projgeo\analyse.h(18)*: voir la déclaration de 'Analyse::~Analyse'
    y:\documents\projgeo\analyse.cpp(112) : fatal error C1075: fin de fichier rencontrée avant que l'élément accolade '{' gauche de 'y:\documents\projgeo\analyse.h(9)' soit équilibré
    main.cpp
    y:\documents\projgeo\main.cpp(7) : error C2059: erreur de syntaxe*: 'namespace'
    y:\documents\projgeo\main.cpp(7) : error C2238: jetons inattendus avant ';'
    y:\documents\projgeo\main.cpp(9) : error C2460: 'Analyse::analiseur'*: utilise 'Analyse', en cours de définition
            y:\documents\projgeo\analyse.h(9)*: voir la déclaration de 'Analyse'
    y:\documents\projgeo\main.cpp(45) : fatal error C1075: fin de fichier rencontrée avant que l'élément accolade '{' gauche de 'y:\documents\projgeo\analyse.h(9)' soit équilibré
    Génération de code en cours...

  2. #2
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    Je n'ai pas tout regardé, mais si on prend la première erreur générée, ça semble venir de Analyse.h:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void AnalyseSuppression(std::vector<std::string> &tableau){
    Y a un "{" en trop.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 136
    Par défaut
    Héhé je suis vraiment trop un abruti ! On mettre ça sur le compte du surmenage. Mais c'était effectivement à cause de cette accolade ( et d'un "<<" manquant dans un cout ).
    Et bien merci beaucoup pour ton aide !

  4. #4
    Invité de passage
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Par défaut Mais comment tu sais ?
    Bonjour,

    J'ai eu le même genre d'erreur et cette intervention m'a fait gagner un temps précieux. Merci goodpz ;-)
    Il me reste tout de même une question bêtes.
    Comment as-tu compris que l'erreur était dans analye.h ?
    La première ligne d'érreur te renvois dans iostream(12) et non dans analyse.h.

  5. #5
    Membre expérimenté Avatar de Rewpparo
    Homme Profil pro
    Amateur
    Inscrit en
    Décembre 2005
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 170
    Par défaut
    Il y a normalement pas d'erreurs dans iostream, si tu as une erreur de compilation dans un fichier système, regarde ce que tu as mis au dessus (ici #include "analyse.h"). Une accolade ou un ; qui manque, le drame se propage et fait merder la suite

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. RXControl RxRichEdit ERREUR Compilation
    Par loleske dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/02/2005, 18h12
  2. [FreePascal] Erreur compilation ou défaut Dev-Pascal ?
    Par molesqualeux dans le forum Free Pascal
    Réponses: 5
    Dernier message: 27/12/2004, 10h00
  3. [Débutant]Erreur compilation !
    Par gandalf_le_blanc dans le forum AWT/Swing
    Réponses: 23
    Dernier message: 30/08/2004, 14h23
  4. Trop de message d'erreurs: compilation KO
    Par jeannot27 dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/01/2004, 16h45
  5. Erreur compilation DX8.1 VC++ 6
    Par d.vidal dans le forum DirectX
    Réponses: 1
    Dernier message: 10/09/2003, 09h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo