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 :

fatal error C1083: Impossible d'ouvrir le fichier include*: 'Monstre.h'*: No such file or directory


Sujet :

C++

  1. #1
    Débutant
    Homme Profil pro
    aucun
    Inscrit en
    Avril 2012
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2012
    Messages : 152
    Points : 28
    Points
    28
    Par défaut fatal error C1083: Impossible d'ouvrir le fichier include*: 'Monstre.h'*: No such file or directory
    Re-bonjour,

    Oui c'est encore moi. Je suis la puisque j'ai un erreur avec mon main.cpp parce que quand je "include" Monstre.h & Assassin.h. Ça dit que c'est impossible de ouvrir le fichier. Quelqu'un peut me trouver la solution svp.

    Ps: Je suis vraiment desole de demander beaucoup d'aide

    Assassin.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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #ifndef DEF_ASSASSIN
    #define DEF_ASSASSIN
    #include <iostream>
    #include <string>
    #include "Monstre.h"
     
    class Monstre;
     
    /* Creer les assassins */
    class Assassin
    {
    	/* Les attributs d'un assassin */
    private:
    	std::string m_nom;
    	char m_class;
    	int m_hp;
    	int m_sp;
    	int m_xp;
    	int m_level;
    	int m_puissance;
    	int m_rapidite;
    	int m_energie;
    	int m_resistance;
    	std::string m_arme;
    	bool m_estVivant;
     
    	/* Les actions que l'assassin peut faire ou recevoir */
    public:
    	void perdreHp(int nbDegat); 
    	void perdreSp(int perte);
    	void gagnerXp(int const& levelEnnemi, bool const& ennemiVivant);
    	void gagnerHp(bool const& ennemiVivant);
    	void gagnerSp(bool const& ennemiVivant);
    	void attaquer(Monstre &cible);
    	void superAttaque(Monstre &cible);
    	bool getVivant() const;
    	void information();
    };
     
    #endif
    Monstre.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
    30
    31
    32
    33
    34
    #ifndef DEF_MONSTRE
    #define DEF_MONSTRE
    #include <iostream>
    #include <string>
    #include "Assassin.h"
     
    class Assassin;
     
    /* Creation des Monstres */
    class Monstre
    {
    private:
    	/* Attribut des Monstres */
    	int m_hp;
    	int m_sp;
    	int m_level;
    	int m_puissance;
    	int m_rapidite;
    	int m_energie;
    	int m_resistance;
    	bool m_estVivant;
     
    	/* Action que les monstres peuvent recevoir & faire */
    public:
    	void perdreHp(int const nbDegat);
    	void perdreSp(int perte);
    	void attaquer(Assassin &cible);
    	void superAttaque(Assassin &cible);
    	int getLevel() const;
    	bool getVivant() const;
    	void information();
    };
     
    #endif
    Assassin.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
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    #include "Assassin.h"
    #include <string>
    #include <iostream>
    using namespace std;
     
    /* Fonction qui fait perdre la vie a l'assassin */
    void Assassin::perdreHp(int const nbDegat)
    {
    	/* Si il est vivant, il pourra perdre de la vie */
    	if(m_estVivant = true)
    	{
    		/* Calculer le nombre de dommage sur l'assassin */
    		int perte(nbDegat/2);
    		perte /= m_resistance;
    		m_hp -= perte;
    		/* Si il succombre, il meurt */
    		if(m_hp < 0)
    		{
    			m_estVivant = false;
    			cout << "Vous etes mort" << endl;
    		}
    		else
    		{
    			cout << "Vous avez perdu " << perte << " vies" << endl;
    		}
    	}
    	else
    	{
    		cout << "Vous etes mort" << endl;
    	}
    }
     
    /* Fonction qui fait perdre du Sp a l'assassin */
    void Assassin::perdreSp(int perte)
    {
    	/* Si il y a du Sp, il peut en perdre*/
    	if(m_sp > 0)
    	{
    		m_sp -= perte;
    	}
    	else
    	{
    		cout << "Pas d'energie" << endl;
    	}
    }
     
    /* La fonction qui permet a l'assassin de gagner des Xp */
    void Assassin::gagnerXp(int const& levelEnnemi, bool const& ennemiVivant)
    {
    	/* Si l'ennemi est mort */
    	if(ennemiVivant == false)
    	{
    		/* Calculer le Xp ramasser */
    		int gain = levelEnnemi*40;
    		gain /= m_level;
    		/* Rajouter le Xp gagner */
    		m_xp += gain;
    		cout << "Vous avez gagner " << gain << " xp" << endl;
    		/* A chaque 100 xp, tu as un level up */
    		if(m_xp > 100)
    		{
    			while(m_xp > 100)
    			{
    				m_xp -= 100;
    				m_level += 1;
    				gagnerHp(ennemiVivant);
    				gagnerSp(ennemiVivant);
    				cout << "Felicitation : vous avez atteint le niveau " << m_level << endl;
    			}
    		}
    	}
    }
     
    /* Fonction qui permet de gagner des Hp */
    void Assassin::gagnerHp(bool const& ennemiVivant)
    {
    	/* Si l'ennemi meurt, tu recois des vies en recompenses */
    	if(ennemiVivant == false)
    	{
    		/* Calculer le nombre de hp que l'assassin merite */
    		int gain(m_rapidite/5);
    		gain *= 2;
    		/* Ajouter le hp merité */
    		m_hp += gain;
    		cout << "Vous avez gagner " << gain << " vie." << endl;
    	}
    }
     
    /* Fonction qui permet de ganger des Sp*/
    void Assassin::gagnerSp(bool const& ennemiVivant)
    {
    	/* Si l'ennemi meurt, tu recois des sp en recompenses */
    	if(ennemiVivant == false)
    	{
    		/* Calculer le nombre de sp merité */
    		int gain(m_rapidite/5);
    		gain *= 2;
    		/* Ajouter le nombre de sp merité */
    		m_sp += gain;
    		cout << "Vous avez gagner " << gain << " sp." << endl;
    	}
    }
     
    /* Fonction qui permet a l'assassin d'attaquer un monstre */
    void Assassin::attaquer(Monstre &cible)
    {
    	cout << "Vous avez attaquer" << endl;
    	/* Calculer la force d'impacte */
    	int forceDattaque(m_puissance/2);
    	/* Enlever la vie au monstre */
    	cible.perdreHp(forceDattaque);
    	/* Si il meurt, l'assassin a gagné */
    	if(cible.getVivant() == false)
    	{
    		gagnerXp(cible.getLevel(),cible.getVivant());
    		gagnerHp(cible.getVivant());
    		gagnerSp(cible.getVivant());
    	}
    }
     
    /* Fonction qui permet a l'assassin de faire des attaques magiques */
    void Assassin::superAttaque(Monstre &cible)
    {
    	/* Calculer l'energie qui sera utilisé pendant l'attaque */
    	int coutEnergie(100/m_energie*m_level);	
    	/* Calculer la force d'impacte qui aura */
    	int forceDattaque(m_energie*2);
    	/* Si l'assassin a assez de sp, il pourra faire la super attaque*/
    	if(coutEnergie < m_sp)
    	{
    		cout << "Vous avez faite un super-pouvoir" << endl;
    		/* Perdre l'energie consumé */
    		perdreSp(coutEnergie);
    		/* La cible recoit l'impacte */
    		cible.perdreHp(forceDattaque);
    		/* Si le monstre meurt, l'assassin a gagné */
    		if(cible.getVivant() == false)
    		{
    			gagnerXp(cible.getLevel(),cible.getVivant());
    			gagnerHp(cible.getVivant());
    			gagnerSp(cible.getVivant());
    		}
    	}
    	else
    	{
    		cout << "Vous n'avez plus d'energie" << endl;
    	}
    }
     
    /* Fonction qui retourne si l'assassin est en vie ou mort */
    bool Assassin::getVivant() const
    {
    	return m_estVivant;
    }
     
    /* Fonction qui affiche l'information sur l'assassin */
    void Assassin::information()
    {
    	cout << "Nom : " << m_nom << endl;
    	cout << "Classe : " << m_class << endl;
    	cout << "Hp : " << m_hp << endl;
    	cout << "Sp : " << m_sp << endl;
    	cout << "Xp : " << m_xp << endl;
    	cout << "Level : " << m_level << endl;
    	cout << "Puissance : " << m_puissance << endl;
    	cout << "Rapidite : " << m_rapidite << endl;
    	cout << "Resistance : " << m_resistance << endl;
    	cout << "Arme : " << m_arme << endl;
    }
    Monstre.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
    #include "Monstre.h"
    #include <iostream>
    using namespace std;
     
    /* Fonction qui fait perdre de la vie du monstre */
    void Monstre::perdreHp(int const nbDegat)
    {
    	/* Si il est vivant, il pourra perdre des vies*/
    	if(m_estVivant = true)
    	{
    		/* calculer le dommage qui aura sur le monstre */
    		int perte(nbDegat/2);
    		perte /= m_resistance;
    		m_hp -= perte;
    		/* Si il succombre, il meurt */
    		if(m_hp < 0)
    		{
    			m_estVivant = false;
    			cout << "Le monstre est mort" << endl;
    		}
    		else
    		{
    			cout << "Dommage de " << perte << " vies" << endl;
    		}
    	}
    	else
    	{
    		cout << "Le monstre est mort" << endl;
    	}
    }
     
    /* Fonction de perdre de l'energie */
    void Monstre::perdreSp(int perte)
    {
    	/* Si il y a du sp, le monstre peut en perdre */
    	if(m_sp > 0)
    	{
    		m_sp -= perte;
    	}
    	else
    	{
    		cout << "Le monstre n'as d'energie" << endl;
    	}
    }
     
    /* fonction qui permet au monstre de attaquer un assassin */
    void Monstre::attaquer(Assassin &cible)
    {
    	cout << "Le monstre vous a attaqué" << endl;
    	/* Calculer la force d'impacte */
    	int forceDattaque(m_puissance/2);
    	/* Enlever la vie au assassin */
    	cible.perdreHp(forceDattaque);
    	/* Si la cible meurt. Le monstre a gagné */
    	if(cible.getVivant() == false)
    	{
    		cout << "Le monstre a gagné" << endl;
    	}
    }
     
    /* fonction qui permet au monstre de faire une attaque magique */
    void Monstre::superAttaque(Assassin &cible)
    {
    	/* Calculer l'energie qui sera depensé lors de l'attaque */
    	int coutEnergie(100/m_energie*m_level);
    	/* Calculer la force d'impacte qui aura */
    	int forceDattaque(m_energie*2);
    	/* Si le monstre a assez d'energie. Il peut faire la super attaque. */
    	if(coutEnergie < m_sp)
    	{
    		cout << "Le monstre a fait un superpouvoir" << endl;
    		/* Perdre l'energie consumé */
    		perdreSp(coutEnergie);
    		/* La cible recoit l'impacte */
    		cible.perdreHp(forceDattaque);
    		/* Si l'assassin succombre le monstre gagne */
    		if(cible.getVivant() == false)
    		{
    			cout << "Le monstre a gagner." << endl;
    		}
    	}
    	else
    	{
    		cout << "Vous n'avez plus d'energie" << endl;
    	}
    }
     
    /* Fonction qui retourne le level du monstre */
    int Monstre::getLevel() const
    {
    	return m_level;
    }
     
    /* Fonction qui retourne si le monstre est en vie ou pas */
    bool Monstre::getVivant() const
    {
    	return m_estVivant;
    }
     
    /* Fonction qui affiche les informations du monstres */
    void Monstre::information()
    {
    	cout << "Hp : " << m_hp << endl;
    	cout << "Sp : " << m_sp << endl;
    	cout << "Level : " << m_level << endl;
    	cout << "Puissance : " << m_puissance << endl;
    	cout << "Rapidite : " << m_rapidite << endl;
    	cout << "Resistance : " << m_resistance << endl;
    }
    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <iostream>
    #include <string>
    #include "Assassin.h"
    #include "Monstre.h"
    using namespace std;
     
    int main()
    {
    	system("PAUSE");
    	return 0;
    }

  2. #2
    Membre actif
    Avatar de demkada
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Août 2011
    Messages : 79
    Points : 223
    Points
    223
    Billets dans le blog
    3
    Par défaut
    Salut,
    peux tu vérifier que ton fichier Monstre.h se trouve dans le même répertoire que ton code main.cpp?
    Si c'est le cas, vérifie aussi que le nom du fichier est vraiment "Monstre.h" et non monstre avec s, ou en minuscule ou quelque chose du genre!!!

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Le message est pourtant clair : le compilateur ne trouve pas le fichier d'en-tête Monster.h.

    Il faut donc faire quelques vérifications de base:
    1. le fichier doit exister
    2. le nom du fichier doit être correct (en respectant la casse)
    Une fois que tu as ces deux certitudes, il est possible que le fichier d'en-tête se trouve dans un dossier qui n'est pas utilisé par le compilateur pour la recherche des fichiers d'en-tête.

    Cela arrive souvent lorsque l'on décide de placer les fichiers *.h dans un dossier particulier (include, par exemple). Si c'est le cas, il "suffit" d'indiquer le dossier en question au compilateur.

    Cela se fait "classiquement" en rajoutant l'option -InomDuDossier (ou, avec le compilateur de microsoft, avec l'option /InomDuDossier) ou I est le i majuscule et où nomDuDossier correspond au chemin qui mène au dossier qui contient les fichiers .h.

    Si tu travailles avec un EDI, tu dois vérifier les options de compilation de ton projet et rajouter le nom du dossier concerné dans une option du genre "include directory" (dossier d'include) ou similaire, en fonction de ton EDI.

    Ma boule de crystal me fait penser que tu utilise visual studio, mais pourrais tu nous le confirmer, ainsi que la version particulière de cet EDI utilisée, afin que nous puissions t'indiquer où aller trouver cette option

  4. #4
    Débutant
    Homme Profil pro
    aucun
    Inscrit en
    Avril 2012
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2012
    Messages : 152
    Points : 28
    Points
    28
    Par défaut
    Merci. On peut dire que je fais beaucoups de betes erreurs

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/12/2010, 13h55
  2. Réponses: 4
    Dernier message: 05/05/2010, 16h50
  3. Réponses: 2
    Dernier message: 07/08/2008, 21h19
  4. fatal error C1083: Impossible d'ouvrir le fichier include : stdio.h
    Par math26 dans le forum Bibliothèque standard
    Réponses: 3
    Dernier message: 03/12/2007, 23h50
  5. Réponses: 7
    Dernier message: 20/01/2007, 19h00

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