je suis sur windows XP et je travail avec visual studio 2005
mon probléme est que je n'arrive pas a créé le dictionnaire dans mon programme donc il me dit qu'il ne trouve pas le fichier dico.dat (normale)

Si cela peut vous aider, voici mon code
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<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#include<conio.h>
 
#define MAXMOTS 100
#define LONGMOT 20
 
char dico[MAXMOTS][LONGMOT];
char mot[LONGMOT];
char *pmot;
 
FILE*f;
 
//Fonction principale
int main(int argc,char*argv[])
{
	int i,res;
	extern int strcmp();
	short nb_mot=0;
	char touche;
	//declaration des fonctions
	short dichotomie(char dico[MAXMOTS][LONGMOT],char *mot,short nb_mot);
	void sup_ponc(char *pmot);
	void sup_maj(char *pmot);
	void ajout(char dico[MAXMOTS][LONGMOT],char *mot,short nb_mot);
	//ouverture du dictionnaire
	//Test que le fichier dico s'ouvre bien
	if ((f=fopen("dico.dat","r")) == NULL)
		printf("\nImpossible d'ouvrir le fichier Dico, creation d'un nouveau Dico");
	/*Puisqu'il est impossible d'ouvrir le fichier dico, la fin du programme permetra
	d'en créé un nouveau avec fopen("dico.dat","w")*/
	else 
	{
		/*remplissage du tableau dico par les mots presents dans le fichier dico*/
		while (fscanf(f,"%s",mot) !=EOF)
		{
			strcpy(dico[nb_mot],mot);
			nb_mot += 1;
		}
		/*Fermeture du fichier Dico*/
		fclose(f);
	}
		/*tri en mémoire du tableau Dico*/
		qsort((char **)dico,nb_mot,LONGMOT,strcmp);
		/*Ouverture du fichier a vérifier*/
		/*Test que le fichier s'ouvre bien*/
		if ((f=fopen("texte.dat","r")) == NULL)
			printf("\nImpossible d'ouvrir le fichier texte");
		/*Puisqu'il est impossible d'ouvrir le fichier, le if nous améne à la fin du
		programme*/
		else
		{
			pmot=mot;
			while (fscanf(f,"%s",mot) != EOF)
			{
				//appel de la fonction permettant de suprimer la ponctuation
				sup_ponc(pmot);
			/*appel de la fonction permettant de remplacer les majuscules 
			par des minuscules*/
			sup_maj(pmot);
			//Appel de la fonction dichotomie
			res=dichotomie(dico,mot,nb_mot);
			/*invite suivant le resultat de la dichotomie à rajouter le mot
			dans le dictionnaire*/
			if (res == 0)
			{
				printf("\nVoulez-vous enregistrer le mot '%s' dans le dico (o)oui ou (n)non?\n",mot);
				do
				{
					touche=getch();
				}
				while (touche!='o'&&touche!='n');
				//choix suivant le resultat de l'operateur
				if (touche=='o')
				{
					ajout(dico,mot,nb_mot);
					nb_mot+=1;
				}
			}
			}
 
					//fermeture du fichier texte
					fclose(f);
					//Ouverture du fichier dico en mode écriture
					f=fopen("dico.dat","w");
					//enregisrement dans le dico du tableau
					for (i=0;i<nb_mot;i++)
						fprintf(f,"%s\n",dico[i]);
					//Fermeture du fichier dico
					fclose(f);
			}//fin du if testant l'ouverture du fichier texte
				return 0;
}	
			//FONCTION DICHOTOMIE
			short dichotomie(char dico[MAXMOTS][LONGMOT],char *mot, short nb_mot)
			{
				//déclaration des variables
				int i=0,j=nb_mot,k,res;
				//Traitement
				while ((j-i)>1 && res!=0)
				{
					k=(i+j)/2;
					res=strcmp(dico[k],mot);
					if (res>0)
						j=k;
					else
						i=k;
					/*ce if afin d'atteindre le mot du tableau dico[0]
					puisque j-i ne peut qu'être strictement supérieur à 1*/
					if (k==0 && res!=0)
						res=strcmp(dico[0],mot);
				}
				//Affectation des valeurs retournées
				if (res!=0)
					res=0;
				else
					res=1;
				return res;
			}
 
			//FONCTION SUPPRESSION DE LA PNCTUATION
			void sup_ponc(char *pmot)
			{
				//Déclaration des variables locales
				int i=0,j=0;
				char c;
				//Traitement
				while (pmot[i]!=NULL)
				{
					c=pmot[i];
					if (isalpha(c))
					{
						pmot[j]=c;
						j++;
					}
					i++;
				}
				pmot[j]=0;
			}
 
			//FONCTION SUPPRESSION DES MAJUSCULES
			void sup_maj(char *pmot)
			{
				//Déclaration des variables locales
				int i=0;
				char c;
				//Traitement
				while (pmot[i]!=NULL)
				{
					c=pmot[i];
					if (isupper(c))
						c=tolower(c);
					pmot[i]=c;
					i++;
				}
				pmot[i]=0;
			}
 
			//FONCTION AJOUT
			void ajout(char dico[MAXMOTS][LONGMOT],char *mot,short nb_mot)
			{
				//Copie du nouveau mot dans le tableau
				strcpy(dico[nb_mot],mot);
				//Tri en mémoire du tableau dico
				qsort((char**)dico,nb_mot,LONGMOT,strcmp);
			}
merci pour votre aide