Pour commencer,
Voici mon programme :

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
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
 
 
#define MAXMOTS 100	//nombre maximum de mots dans le dictionnaire
#define LONGMOT 20 	//longueur en carcatere d'un mot
 
 
//initialisation de la fonction de recherche dichotomique
short dichotomie(char **dico,char *mot,short nb_mots){
 
 
int i,j,k,trouve,indice;		//i->debut, j->fin
int strcmp (const char *s1, const char *s2);
 
 
i=0;
j=nb_mots;
trouve=0;
 
while(i<=j && trouve == 0) {				
 
int moy;		//moyenne de(i,j)
moy=(i+j)/2;
k=moy;
 
 
if(strcmp(dico[k],mot)==0) {
	trouve=1;
}
if(strcmp(dico[k],mot)>0) {
	j=k-1;}
else{
	i=k+1;
}
}
 
 
 
if(trouve==0){indice=0;}	//si mot n'a pas été trouvé
if(trouve==1){indice=1;}	//si mot a été trouvé
 
return indice;
}
 
 
 
//FONCTION PRINCIPALE main()
 
 
 
int main (int argc, char **argv) {
 
FILE * f;
 
char mot_texte[LONGMOT];	//mot lu dans le fichier texte
char dico[MAXMOTS][LONGMOT];
char *pmot;
char *fichier_texte; //nom du fichier à ouvrir et traiter
 
void qsort (void *base, size_t nmemb, size_t size,int (*compare)(const char *, const char*));
int strcmp (const char *s1, const char *s2);
 
int i,j,k;
char mot[100];
short nb_mots;
 
 
 
printf("Veuillez entrer le nom du fichier texte a traiter pour la recherche dichotomique svp: ");
fgets (fichier_texte, sizeof fichier_texte, stdin); 
 
f=fopen("dico.dat","r");
 
 
//lecture mot par mot de tout le fichier et stockage dans un tableau en mémoire (dico)
for (i=0; i!= EOF; i++) {
fputs(mot_texte,dico);
}
 
fclose(dico.dat);
 
//tri en mémoire du tableau dico
qsort((char**)dico,nb_mots,LONGMOT,strcmp);	
 
 
//ouverture du fichier texte en lecture
f=fopen ("argv","r");
 
 
//TRAITEMENT POUR CHAQUE MOT DU TEXTE: suppression de majuscule et de ponctuation
for (i=0; i<nb_mots;i++){
 
void sup_ponc(char mot) {
	for (mot_texte==getc(argv); mot_texte!=EOF) {
putc(isalpha(mot_texte),argv);}
}
 
void sup_maj (char mot) {
	for (mot_texte==getc(argv); mot_texte!=EOF) {
putc(tolower(mot_texte),argv);}
}
 
}
 
//recherche du mot dans le tableau dico à l'aide de la fonction dichotomie
dichotomie(dico, mot, nb_mots);
 
if (dichotomie==0){
char rep;	//variable pourla réponse de l'utilisateur
fprintf (f,"Le mot n'existe pas. Voulez vous l'ajouter au dictionnaire? \n");
fscanf(f,"%s",&rep);
 
if (rep=='oui') {
fputs(mot,dico);		//Ajout du mot dans le dico
qsort ((char**) dico, nb_mots,LONGMOT, strcmp);		// Tri en mémoire, une nouvelle fois, du tableau dico
}
}
 
fclose("argv");
 
f=fopen("dico.dat","w");
 
for (i=0; i!= EOF; i++) {
fputs(mot_texte,dico.dat);
}
 
fclose(dico.dat);
 
}

Pour ceux qui m'ont aidé à ma derniere discussion, c'est la suite.

Le programme au complet.. et donc comme prévu j'ai des problemes....

Lesquels...?

13 erreurs en tout !!
yOUHOU !!


Bon celle qui me pose probleme pour le moment je dirait que c'est celle ci::

1>.\1.cpp(75) : warning C4996: 'fopen' a été déclaré désapprouvé
1> C:\Program Files\Microsoft Visual Studio 8\VC\include\stdio.h(234)*: voir la déclaration de 'fopen'
1> Message*: 'This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'