Bonjour à tous.
J'ai un problème (ptetr tout bete pour vous gds gourous du C) avec ce code (entre autres...) :
Voici les messages obtenus à la compilation :
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 /* MODULE : CREER enregistrement du texte Role : manipulation d'un enregistrement de 30 mots Structures manipulees : enregistrement Dependances : <stdio.h> */ #include <stdio.h> #include "createRecord.h" FILE * ptrFich; /* Nom : createRecord Role : creer un enregistrement de 30 mots pour faciliter et accelerer le traitement du texte à indexer Signature : FILE * -> ENREGISTREMENT * Entrée : - Sortie : ENREGISTREMENT * record MAJ : - Dependances : <stdio.h> Algorithme : DEBUT indice : entier, indice de parcours du tbl; indice<-0; Lire le fichier pointé par ptrFile; TANT_QUE indice<30 FAIRE indice++; record(indice)<-mot_courant; FIN_TANT_QUE Retourner record; FIN */ char * createRecord(FILE * ptrFile) { int nb_mots; char tab_enr[50]; char * mot; char caractere; char sep[]="|-><,(); :.\'\t\0 «»"; nb_mots=0; if (ptrFile!=NULL) { ptrFich=ptrFile; } while (!feof(ptrFich) || fgetc(ptrFich)!='\n') { caractere=fgetc(ptrFich); int i=0; int bool=0; //on cherche si le caractère correspond à un séparateur dans le //tableau de séparateur while (i<16 || bool==1) { if (caractere==sep[i]) bool=1; } //si ce n'est pas un séparateur on écrit le mot if (bool==0) { strcat(mot,caractere); } else { tab_enr[nb_mots]=mot; nb_mots ++; } i++; } tab_enr[nb_mots]='/n'; return tab_enr; }
Je comprends pas... Certes ce ne sont "que" des warnings mais c inquiétant vu leur nature !gcc -W createRecord.c -o createRecord
createRecord.c:8:26: createRecord.h: No such file or directory
createRecord.c: In function `createRecord':
createRecord.c:60: warning: passing arg 2 of `strcat' makes pointer from integer without a cast
createRecord.c:63: warning: assignment makes integer from pointer without a cast
createRecord.c:68:19: warning: multi-character character constant
createRecord.c:68: warning: overflow in implicit constant conversion
createRecord.c:69: warning: function returns address of local variable
Pouvez-vous m'aider ?
Pourquoi les pointeurs de char ne sont ils pas acceptés comme cela devrait l'^etre au vu du man des fonctions utilisees.
Merci d'avance.
Partager