Bonjour,

Je fais actuellement l'appconsole du "Nombre Mystère", or j'aimerais au début du programme afficher un message avec le titre du jeu en Art ASCII

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
___________.__                _____                 __                        __________              
\__    ___/|  |__   ____     /     \ ___.__. ______/  |_  ___________ ___.__. \______   \ _______  ___
  |    |   |  |  \_/ __ \   /  \ /  <   |  |/  ___|   __\/ __ \_  __ <   |  |  |    |  _//  _ \  \/  /
  |    |   |   Y  \  ___/  /    Y    \___  |\___ \ |  | \  ___/|  | \/\___  |  |    |   (  <_> >    < 
  |____|   |___|  /\___  > \____|__  / ____/____  >|__|  \___  >__|   / ____|  |______  /\____/__/\_ \
                \/     \/          \/\/         \/           \/       \/              \/            \/
J'ai donc opté pour la solution, consistant à ouvrir un flux et pour aller récupérer le titre du jeux dans un fichier.txt.

Or lors de la compilation, j'obtiens ces deux erreurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
MysteryBox.obj : error LNK2019: symbole externe non résolu _fclosed référencé dans la fonction _DispTitle
MysteryBox.exe : fatal error LNK1120: 1 externes non résolus
Je penses que c'est peut être lié à comment j'indique l'adresse du document, mais je ne suis pas sur. J'ai vérifier si j'avais oublié d'inclure une bibliothèque, mais je pense que tout est bon.

Je suis pas hyper convaincu de ce que j'ai fait à la ligne 25 - 27. l'idée est de gérer les codes d'erreur pour stopper le programme. Dans le cas où la lecture du fichier échoue, un message d'erreur est affiché et la fonction retourne une valeur (1), qui peut être utilisé pour stopper tout le programme.

Code complet:
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
//déclaration des fonctions secondaires
void CopFichier(FILE *fileBuffer);
int DispTitle(void);
int YourNumb(const int MIN, const int MAX);
int TestNumb(int myNumb, const int nbrMystere);
void ScoreTab(const int nbrMystere, int compteur);
void GameMstBx(const int MIN, const int MAX);
void PauseApp(void);
 
// ==================== FONCTION MAIN ====================
int main() {
	int status = 0;
 
	//declaration des constantes
	const int MIN = 0, MAX = 100;
 
	//initialisation du générateur de nombre aléatoire
	srand(time(NULL));
 
	// affichage du titre du jeux
	status = DispTitle();
 
	if (status == 1) return 1;
 
	//début de la partie
	GameMstBx(MIN, MAX);
 
	// Pause avant la fin du programme
	PauseApp();
 
	//fin du programme
	return 0;
 
}
 
// ==================== FONCTION SECOND ====================
// imprime écran le contenu du buffer
void CopFichier(FILE *fileBuffer) {
	// déclaration des variable
	char copyStr[257 + 1];
 
	//impression du contenu du document
	while (fgets(copyStr, sizeof(copyStr), fileBuffer) != NULL)
		printf("%s", copyStr);
}
 
// fonction affichant le titre:
int DispTitle(void) {
	// déclaration des pointeurs
	char *filename = "./title.txt";
	FILE *fileBuffer;
 
	// ouverture vérification du flux
	if ((fileBuffer = fopen(filename, "r")) == NULL) {
		fprintf(stderr, "Erreur - Echec de l'ouverture du fichier %s en mode lecture!", filename);
		// retour valeur sentinelle - une erreur s'est produite
		return 1;
	}
 
	//Impression écran du message
	fputs("Bienvenu dans \n",stdout);
	CopFichier(fileBuffer);
 
 
	// fermeture du flux
	fclosed(fileBuffer);
 
	// retour valeur sentinelle - tout c'est bien passé
	return 0;
}
 
// fonction demandant la réponse
int YourNumb(const int MIN, const int MAX) {
	char retourCl[10 + 1];
	int myNumb, status;
 
	while (1)
	{
		fputs("Entrez un nombre entre 0 et 100 : ", stdout);
		fgets(retourCl, 10 + 1, stdin);
		status = sscanf(retourCl, "%d", &myNumb);
		// "if" casse la boucle, si ses conditions sont remplies
		if (status == 1 && myNumb >= MIN && myNumb <= MAX) break;
		fputs("Entree incorrect - Entrez un nombre compris entre 0 et 100!\n", stdout);
	}
 
	return myNumb;
}
 
//fonction donnant un indice
int TestNumb(int myNumb, const int nbrMystere) {
	if (myNumb < nbrMystere)
	{
		fputs("C'est plus!\n", stdout);
		return 0;
	}
	else if (myNumb > nbrMystere)
	{
		fputs("C'est moins!\n", stdout);
		return 0;
	}
	else
	{
		fputs("Bravo! vous avez trouvez le nombre mystère\n", stdout);
		return 1;
	}
}
 
//fonction affichant le résultat du joueur
void ScoreTab(const int nbrMystere, int compteur) {
	fputs("===== RESULTAT DE PARTIE =====\n", stdout);
	printf("Le nombre mystere etait : %d \n", nbrMystere);
	printf("Nombre de tour: %d \n", compteur);
}
 
//fonction commençant la partie
void GameMstBx(const int MIN,const int MAX) {
	// playerAnswer		- variable stockant la réponse du joueur
	// nbrMystere		- variable stockant le nombre généré aléatoirement
	int playerAnswer, nbrMystere;
 
	// gameWin			- variable définissant la condition du jeux (1 = gagné)
	// compteur			- variable comptant le nombre de tour
	int gameWin = 0, compteur = 0;
 
	//attribution d'un nombre généré aléatoirement
	nbrMystere = (rand() % (MAX - MIN + 1)) + MIN;
 
	//boucle de partie
	do
	{
		//compte le nombre de tour
		compteur++;
 
		//fonction récupérant la réponse du joueur
		playerAnswer = YourNumb(MIN, MAX);
 
		//fonction testant la réponse du joueur
		gameWin = TestNumb(playerAnswer, nbrMystere);		
	} while (gameWin == 0);
 
	// fonction affichant les résultats de partie
	ScoreTab(nbrMystere, compteur);
}
 
// fonction de sortie
void PauseApp(void) {
	do {
		fputs("Appuyez sur 'Entree' pour terminer le programme. \n", stdout);
	} while (getchar() != '\n');
 
}
Merci d'avance pour votre aide,
Red'