Lectur/ecriture dans un fichier: Probleme!

Résolu/Fermé
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 - 29 mai 2008 à 16:56
 SebDam - 5 août 2008 à 15:36
Bonjour,

VOILA! je ne sais pas par ou commencer tellement j'ai de probemes dans mon programme.
C'est la premiere fois dans mes devoirs que je travail là dessus.

Je vais commencer par mon probleme principale.
Voila je dois ouvrir un fichier en lecture,
donc avec fopen,
Mais VS me rend dingue..

j'ai:

//FONCTION PRINCIPALE main()

FILE * f;
FILE *fopen(const char *path,const char *mode);
int fclose (FILE *stream); 

int main(void) {
char mot_texte[LONGMOT];	//mot lu dans le fichier texte
char dico[MAXMOTS][LONGMOT];
char *pmot;
char **argv;	//valeur des arguments
int argc;		//nombre d'argument

int strcmp (const char *s1, const char *s2);
void qsort (void *base, size_t nmemb, size_t size,int (*compar)(const void *, const void *));


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: ");
fscanf_s(f,"%s",&argv);

f=fopen("dico.dat","r");

[...]


Le probleme le voila...

VS me note: " warning C4273: 'fopen' : liaison DLL incohérente" et "warning C4273: 'fclose' : liaison DLL incohérente"

au niveau ce ces 2 lignes :
FILE * f;
FILE *fopen(const char *path,const char *mode);

Pour ce qui est du moment ou j'ouvre dico.dat,
Il me met:
"warning C4996: 'fopen' a été déclaré désapprouvé" et me dit de mettre a la place de fopen, "fopen_s"
seulement si je met fopen_s,il me note ensuite que la fonction ne prend pas 2 arguments -_-

Quelqu'un peut m'aider? si c'est assez clair dans mes explications bien sur :s
A voir également:

31 réponses

MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
29 mai 2008 à 17:19
eh bien oui je pensais bien qu'il ne fallais pas les déclarer..

ca resoud le probleme du "pb DLL"

mais pas le probleme de mon ouverture de fichier avec fopen qui est toujours déclaré désapprouvé et qui me dit de mettre "fopen_s" a la pace!!
seulement quand je met "fopen_s" comme il me le dit, la fonction ne prend plus 2 arguments -_-
1
mich62120 Messages postés 631 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 6
29 mai 2008 à 17:28
Et si tu utilise fscanf au lieu de fscanf_s?
0
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
29 mai 2008 à 17:32
ca ne change rien.

Voici mo programme entier pour mieux comprendre peut etre si j'ai dicémné des erreurs....

#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,trouve,k,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

int strcmp (const char *s1, const char *s2);
void qsort (void *base, size_t nmemb, size_t size,int (*compar)(const void *, const void *));


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++) {
putc(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(dico, mot, nb_mots)==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') {
putc(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++) {
putc (mot_texte,dico.dat);
}

fclose(dico.dat);

}
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
29 mai 2008 à 18:25
tes fopen() ils sont bon mais pas tes fclose() il faut fermé le flux pas le fichier...
essaye comme ça
fclose(f);
0
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
29 mai 2008 à 18:29
OH yeahhh !!

ça marche merci beaucoup !!!

Désolé ca avait l'air peut etre débile mais c'est la premiere fois que je travaille la dessus !! ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
29 mai 2008 à 18:32
de rien...
n'oublie pas de mettre en resolu si tu n'as plus de probleme ;)
0
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
29 mai 2008 à 18:35
eh bien justement ce n'était qu'un petit probleme dans mon programme :D

UHUH!!

J'ai probleme également avec mes "fputs"
Voila:

1>.\1.cpp(80) : error C2664: 'fputs' : impossible de convertir le paramètre 2 de 'char [100][20]' en 'FILE *'
1>.\1.cpp(117) : error C2664: 'fputs' : impossible de convertir le paramètre 2 de 'char [100][20]' en 'FILE *

Et d'ailleurs "fopen" est toujours déclaré désaprouvé aussi.. 3 erreurs en moins pour mes fclose certes mais mon fopen bug toujours.. snif !!
Voila ce qui est noté:
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.'
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
29 mai 2008 à 18:45
comment se fait il que tu ais des problemes avec tes fputs() je ne vois pas de fputs() dans ton programme...
quand tu donnes les erreurs donne nous aussi la ligne ou se situe l'erreur ça sera plus simple
0
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
29 mai 2008 à 18:51
Forcement j'ai modifié... lol (je suis tete en l'air..))

Alors ici:

[...]
//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);
}

[...]


ici et ici:

[...]
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(f);

f=fopen("dico.dat","w");

for (i=0; i!= EOF; i++) {
fputs(mot_texte,dico.dat);
}
[...] 




Voila par raport au dernier post de mon programme !!

En entier ca donne donc ca maintenant:

#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);           //ici !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}

fclose(f);

//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);	//ici !!!!!!!!!!!!!!!!!!!!!!!!!!
qsort ((char**) dico, nb_mots,LONGMOT, strcmp);		// Tri en mémoire, une nouvelle fois, du tableau dico
}
}

fclose(f);

f=fopen("dico.dat","w");

for (i=0; i!= EOF; i++) {
fputs(mot_texte,dico.dat);                // ICI !!!!!!!!!!!!!!!!!!!!!!!!!!!!
}

fclose(f);

}
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
29 mai 2008 à 19:17
ok deja pour le premier tu te trompe de fonction pour prendre ce que tu lis dans le fichier et le mettre dans dico tu doit utiliser fgets()
i=0;
while(fgetc(f)!=EOF)
{
fgets(f,19,dico[i]);
i++;
}
ensuite dans les deux autres cas tu veux faire quoi exactement ?
0
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
29 mai 2008 à 19:30
//lecture mot par mot de tout le fichier et stockage dans un tableau en mémoire (dico)
=>
donc ici merci pour l'aide,^^
mais une nouvelle erreur se produit ..snif
'fgets' : impossible de convertir le paramètre 1 de 'FILE *' en 'char *'


Bon,
Pour les 2 autres:

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
}
}


ici, c'est valable si le mot saisis par l'utilisateur n'est pas dans le dictionnaire. Je demande donc si l'utilisateur veut noter le mot dans le dico avec les autres.. je suppose qu'il faut donc utiliser fgets aussi alors non? par déduction..


f=fopen("dico.dat","w");

for (i=0; i!= EOF; i++) {
fputs(mot_texte,dico.dat);
}


et ici eh bien voici l'énoncé tout simplement:
"ouverture du fichier dico.dat en ecriture, et ecriture mot par mot de tous les éléments du tableau dico."
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
29 mai 2008 à 19:43
ha oui j'ai fait une petite erreur dans l'ordre des parametres ;)
fgets(dico[i],19,f);
pour le deuxieme mot étant deja une variable je suppose que tu fais l'utilisateur lui donné une valeur avant dans ce cas pas besoin de fgets() on copie simplement mot a la bonne place dans dico
strcpy(dico[i],mot);
il faut que tu inclus avant string.h aussi
#include <string.h>
et aussi que tu choississe bien ton i dans dico pour pas effacer un mot qui est dans dico et pour placer le nouveau mot a la bonne place dans dico

pour le dernier c'est bien fputs qu'il faut utiliser mais le dernier parametre c'est pas le nom du fichier mais le flux et il faut ouvrir ton fichier avec le mode ajout "a" si tu veux que tout les mots soit marqué
f=fopen("dico.dat","a");
for (i=0; i<MAXMOTS; i++) {
fputs(dico[i],f);
}
fclose(f);
0
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
29 mai 2008 à 20:05
Ah merci beaucoup, beaucoup !!

PLus que 7 erreurs dans mon programme ^^ eheh
oui encore, et 2 warnings !!
2 warnings qui me disent toujours que mes 2 fopen sont déclarés désaprouvés !! grrrrr !!

J'ai trouvé 4 erreurs moi meme de mon coté mais c'est pas encore parfait!

Je vais essayer de me débrouiller un peu toute seule et je reviendrais si necessaire ^^

Merci encore !!!
0
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
29 mai 2008 à 20:16
Bon peut etre encore une question idiote.

Je dois saisir sur un editeur de texte, me dit l'énoncé, par exemple celui du turb C, bo ici forcemen celui de VS puisque c'est lui que j'utilise, donc saisir mon fichier "dico.dat" et mon "ficher_texte" à traiter dans ce programme.

Pas de probleme je sais entrer dans l'editeur de texte a partir de la fenetre de commande de VS mais une fois mon fichier écrit, je doit l'enregister sous quel nom?
et est ce que le fait de l'enregistrer ainsi va permettre a mon programme de 'louvrir directement a l'execution ou alors je dois faire une autre manip?

Et aussi.. pour ce qui est de mo fichier dico.dat, c'est donc mon dictionnaire,je dois séparer les mots par des virgules??
lol
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
29 mai 2008 à 20:23
tu dois donner a tes fichiers les meme noms que tu as mis dans ton programme donc "dico.dat" et "fichier_texte" et il faut aussi que tu les mettes dans le meme repertoire que ton executable pas de manip a faire

et puis il vaut mieux que tu mettes un mots sur chaque ligne dans ton fichier dico.dat c'est plus simple apres pour travailler dessus...
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
29 mai 2008 à 20:17
un conseil commence toujours par resoudre les erreurs dans l'ordre de la premiere a la derniere et oui des fois en resolvant juste une erreur ça resout toutes les autres

bonne chance ;)
0
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
29 mai 2008 à 20:25
ok !!!

c'est bien ce que je me disait, ca aurait parrue debil de ne pas mettre les meme noms ^^

pour ce qui est du repertoire j'ai peur de passer pour une debile de nooby mais...
"le meme repertoire que mon executable"???

:D

oui les cours par correspondance ça n'est pas complet ni toujours bien expliqué...
snif
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
29 mai 2008 à 20:35
oui je pense que tu dois avoir un dossier de ton compilateur ben quand tu compiles sa crée un executable dans ce dossier puis ensuite tu execute ben tu dois mettre tes fichiers dans ce dossier
l'autre solution c'est tu enregistre tes fichiers ou tu veux mais a ce moment la dans ton fopen() tu dois mettre le chemin absolu de l'endroit ou se trouve ton fichier par exemple
fopen("C:\\Documents\\lendroit_ou_se_trouve_ton_fichier\\dico.dat","r");
0
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
29 mai 2008 à 20:49
OK merci beaucoup j'espere pouvoir me débrouiller !!!
0
MouchT8 Messages postés 22 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 11 août 2008 1
30 mai 2008 à 11:37
Ca y est j'ai résolu le problem de mon "fopen" !
en modifiant mes options VS, plus de warning!! (youguiiiiii !!)

Par contre la il ne me reste plus que quelques erreurs et je ne comprend pas !

Je dois créer 2 fonctions, sup_maj et sup_ponc, pour supprimer majuscule donc, et ponctuation dans mon "fichier_texte" en lisant les mot un par un!

voici ce que j'ai fait::

void sup_ponc(char mot) {
for (mot_texte==getc(fichier_texte); mot_texte<MAXMOTS){
puts(isalpha(mot_texte),fichier_texte);}
}


void sup_maj (char mot) {
for (mot_texte==getc(fichier_texte); mot_texte<MAXMOTS) {
puts(tolower(mot_texte),fichier_texte);}
}



Mais apparemment j'ai fait ça tres tres mal d'après toutes les erreurs trouvées!

Vous voyez une erreur quelquepart vous?
0
mich62120 Messages postés 631 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 6
30 mai 2008 à 13:40
Slt,

La boucle for n'est pas bonne.Le premier termes doit être une affectation et il y en a un troisieme qui represente l'incrementation donc je pense que tu dois voir ton fichier comme un tableau de char dont tu gérera l'indice dans la boucle for.
Je ne vois pas comment tu veux faire vu que tu ne te sert pas de ton argument.
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
30 mai 2008 à 18:45
oui c'est vrai je ne comprends pas non plus pourquoi tu donnes un arguments au fonction alor que tu ne l'utilise pas....
tu pourrais parcourir ton fichier avec une boucle while puis recopié tous les caracteres sauf les ponctuation ou les majuscules dans un fichier temporaire puis recopié le fichier temporaire dans ton ancien fichier
ça ressemble un peu a ça
char c;
while(c=fgetc(f)!=EOF) //la tu recopie tous les caracteres qui sont des lettres seulement
{
if(c>='a' || c<='z')
fprintf(fichier,"%c",c);
}
while(c=fgetc(fichier)!=EOF) // la tu recopies le fichier temporaires dans ton ancien fichier
{
fprintf(f,"%c",c);
}
0
cradlamouche
16 juin 2008 à 13:20
suite a une absence de 2 semaines je reprend juste mon devoir maintenant.

Voici mon code actuel:


#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)
i=0;
while(fgetc(f)!=EOF)
{
	fgets(dico[i],19,f);
	i++;
}



fclose(f);

//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') {
strcpy_s(dico[i],mot);		//Ajout du mot dans le dico
qsort ((char**) dico, nb_mots,LONGMOT, strcmp);		// Tri en mémoire, une nouvelle fois, du tableau dico
}
}

fclose(f);

f=fopen("dico.dat","a");

for (i=0; i<MAXMOTS; i++) {
fputs(dico[i],f);
}

fclose(f);

}




V.S m'indique que sup_ponc, sup_maj ont été déclarées désaprouvé !
Qu'est ce que cela veut il dire ?

Erreur 5 error C2664: 'dichotomie' : impossible de convertir le paramètre 1 de 'char' en 'char **' c:\documents and settings\lamouchetoutecrad\mes documents\visual studio 2005\projects\devoir 8\devoir 8\dv8.cpp 114
Erreur 6 error C2065: 'mot_texte' : identificateur non déclaré c:\documents and settings\lamouchetoutecrad\mes documents\visual studio 2005\projects\devoir 8\devoir 8\dv8.cpp 102
Erreur 7 error C2065: 'argv' : identificateur non déclaré c:\documents and settings\lamouchetoutecrad\mes documents\visual studio 2005\projects\devoir 8\devoir 8\dv8.cpp 102
0
Après modification en réalité V.S m'indique que mes définitions de fonction ne sont pas conformes, en ce qui concerne sup_ponc et sup_maj.
Je ne vois pas ou est mon erreur?
Effectivement je passe un parametre et je ne m'en sert pas, j'ai donc remplacé mot par mot_texte mais ca ne change rien au fait que mes définitions ne sont apareement pas conformes...

Erreur 1 error C2601: 'sup_ponc' : définitions de fonctions locales non conformes c:\documents and settings\lamouchetoutecrad\mes documents\visual studio 2005\projects\devoir 8\devoir 8\dv8.cpp 101


Erreur 2 error C2601: 'sup_maj' : définitions de fonctions locales non conformes c:\documents and settings\lamouchetoutecrad\mes documents\visual studio 2005\projects\devoir 8\devoir 8\dv8.cpp 106


Erreur 3 error C2664: 'dichotomie' : impossible de convertir le paramètre 1 de 'char' en 'char **' c:\documents and settings\lamouchetoutecrad\mes documents\visual studio 2005\projects\devoir 8\devoir 8\dv8.cpp 114


Erreur 4 error C2065: 'argv' : identificateur non déclaré c:\documents and settings\lamouchetoutecrad\mes documents\visual studio 2005\projects\devoir 8\devoir 8\dv8.cpp 102
0