Bonjour je veut imbriquer le menu , mais tjours ne marche pas
l'erreur dans le compil : 43 [Error] stray '\222' in program
{ case ’1’: get_data(fp, argv[0], argv[1]);

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
 
/* programme 
*/
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
/*** Définition de constantes ***/
#define OUI 1
#define NON 0
#define REC_LENGTH 54
/*** Définition de variables ***/
struct record
{ char fname[15+1]; /* prénom terminé par NULL*/
char lname[20+1]; /* nom propre terminé par NULL */
char mname[10+1]; /* second prénom */
char phone[9+1]; /* numéro de téléphone terminé par NULL */
} rec;
 
int main(int argc, char *argv[]);
void display_usage (char *filename);
int display_menu(void);
void get_data(FILE *fp, char *progname, char *filename);
void display_report(FILE *fp);
int continue_function(void);
int look_up(FILE *fp);
/* --- début du programme ---*/
int main(int argc, char *argv[])
{ FILE *fp;
int cont = OUI;
if(argc < 2)
{ display_usage("SEMAINE3");
exit(EXIT_FAILURE);
} /* ouverture du fichier */
if ((fp = fopen(argv[1], "a+")) == NULL)
{ fprintf(stderr, "%s(%d)--Erreur à l’ouverture du fichier \%s", argv[0],__LINE__, argv[1]);
exit(EXIT_FAILURE);
}
while(cont == OUI)
{ switch(display_menu())
{ case1’: get_data(fp, argv[0], argv[1]);
break;
case2’: display_report(fp);
break;
case3’: look_up(fp);
break;
case4’: printf("\n\nMerci d’avoir utilisé ce programme.\n");
cont = NON;
break;
default: printf("\n\nChoix incorrect. Choisissez de 1 à 4.");
break;
}
}
fclose(fp); /* refermer le fichier */
exit(EXIT_SUCCESS);
}
/**************************************************
 * display_menu() *
**************************************************/
int display_menu(void)
{ char ch, buf[20];
printf("\n");
printf("\n MENU");
printf("\n ========\n");
printf("\n1. Entrée de noms");
printf("\n2. Affichage liste");
printf("\n3. Recherche numéro");
printf("\n4. Quitter");
printf("\n\nTapez votre choix ==> ");
lire_clavier(buf, sizeof(buf));
ch = *buf;
return(ch); 
}
 
/****************************************************
* get_data() *
****************************************************/
void get_data(FILE *fp, char *progname, char *filename)
{ int cont = OUI;
while(cont == OUI)
{ printf("\n\nIndiquez ci-après les renseignements :");
printf("\n\nPrénom : ");
lire_clavier(rec.fname, sizeof(rec.fname));
printf("\nSecond prénom : ");
lire_clavier(rec.mname, sizeof(rec.mname));
printf("\nNom de famille : ");
lire_clavier(rec.lname, sizeof(rec.lname));
printf("\nNuméro de téléphone sous la forme 11 22 33 44 : ");
lire_clavier(rec.phone, sizeof(rec.phone));
if (fseek(fp, 0, SEEK_END) == 0)
if(fwrite(&rec, 1, sizeof(rec), fp) != sizeof(rec))
{ fprintf(stderr, "%s(%d) –– Erreur en écriture sur le \fichier %s", progname, __LINE__, filename);
exit(EXIT_FAILURE);
}
cont = continue_function();
}
}
 
 /*******************************************************
 * display_report() - Affiche les entrées du fichier *
*******************************************************/
void display_report(FILE *fp)
{ time_t rtime;
int num_of_recs = 0;
time(&rtime);
fprintf(stdout, "\n\nHeure actuelle : %s", ctime(&rtime));
fprintf(stdout, "\nAnnuaire téléphonique\n");
if(fseek(fp, 0, SEEK_SET) == 0)
{ fread(&rec, 1, sizeof(rec), fp);
while(!feof(fp))
{ fprintf(stdout,"\n\t%s, %s %c %s", rec.lname,
rec.fname, rec.mname[0],rec.phone);
num_of_recs++;
fread(&rec, 1, sizeof(rec), fp);
}
fprintf(stdout,"\n\nNombre total d’enregistrements : %d",num_of_recs);
fprintf(stdout, "\n\n* * * Affichage terminé * * *\n");
}
else
fprintf(stderr, "\n\n*** ERREUR AU COURS DE L’AFFICHAGE ***\n");
}
 
/*********************************************************
 * continue_function() *
**********************************************************/
int continue_function(void)
{ char ch;
do
{ printf("\n\nVoulez-vous en saisir un autre ? (0)ui/(N)on ");
lire_clavier(buf, sizeof(buf));
ch = *buf;
} while(strchr("NnOo", ch) == NULL);
if(ch == ’n’ || ch == ’N’) return(NON);
else return(OUI);
}
 
/*****************************************************
* display_usage() *
*****************************************************/
void display_usage(char *filename)
{ printf("\n\nUSAGE : %s nom de fichier", filename);
printf("\n\n\"nom de fichier\" est le nom du fichier \annuaire\n"); }
 
/******************************************************
* look_up() *
******************************************************/
int look_up(FILE *fp)
{ char tmp_lname[20+1];
int ctr = 0;
fprintf(stdout, "\n\nIndiquez le nom propre à rechercher : ");
lire_clavier(tmp_lname, sizeof(tmp_lname));
if(strlen(tmp_lname) != 0)
{ if (fseek(fp, 0, SEEK_SET) == 0)
{ fread(&rec, 1, sizeof(rec), fp);
 while(! feof(fp))
{if (strcmp(rec.lname, tmp_lname) == 0) /* si correspondance*/
{ fprintf(stdout, "\n%s %s %s – %s", rec.fname,
rec.lname,rec.phone);
ctr++;
}
fread(&rec, 1, sizeof(rec), fp);
}
}
fprintf(stdout, "\n\n%d correspondance(s).", ctr);
}
else
fprintf(stdout, "\nVous n’avez pas indiqué de nom.");
return ctr;
}
merci .