Voilà, j'ai avec ce programme, j'ai creer un fichier agenda.txt
#include <stdio.h>
#include <io.h>
#include <string.h>
#include <stdlib.h>
struct{
char nom[20];
char prenom[20];
int numero;
}fiche;
void saisie(void);
void affichage(void);
void affichage2(void);
FILE *f;
int nbpers=0;
void main(void){
int choix;
do{
printf("Que desirez-vous faire ? \n" );
printf("0-Quitter. \n" );
printf("1-Saisie d'une personne dans l'agenda. \n" );
printf("2-Afficher tout l'agenda. \n" );
printf("3-Faire une recherche par nom. \n" );
scanf("%d",&choix);
switch(choix){
case(1):saisie();break;
case(2):affichage();break;
case(3):affichage2();break;
default:;
}
}while(choix!=0);
}
void saisie(){
f=fopen("agenda.txt","a" );
printf("Nom :\n" );
scanf("%s",fiche.nom);
printf("Prenom :\n" );
scanf("%s",fiche.prenom);
do{
printf("Numero de telephone :\n" );
scanf("%d",&fiche.numero);
}while((fiche.numero<100000000)||(fiche.numero>=9
99999999));
fprintf(f,"\n%s\n%s\n0%d",fiche.nom,fiche.pr
enom,fiche.numero);
fclose(f);
nbpers++;
}
void affichage(){
f=fopen("agenda.txt","r" );
while(fgetc(f)!=EOF){
fscanf(f,"%s%s%d",&fiche.nom,&fiche.prenom,&fiche.numero);
printf("%20s\t%20s\tTel: 0%9d\n\n",fiche.nom,fiche.prenom,fiche.numero);
}
fclose(f);
}
void affichage2(){
char *nom;
printf("rentrez votre nom :\t" );
scanf("%s",nom);
f=fopen("agenda.txt","r" );
while(fgetc(f)!=EOF){
if(strcmp(nom,(char)fscanf(f,"%s",&fiche.nom))!=0)
;
else
fscanf(f,"%s%s%d",&fiche.nom,&fiche.prenom,&fiche.numero);
printf("%s\t%s\t0%d\n",fiche.nom,fiche.prenom,fiche.numero);
}
fclose(f);
}
Voilà, ma fonction affichage fonctionne tres bien et elle permet d'afficher tout le contenu du fichier texte. Maintenant, je cherche à faire une recherche de chaine de caractère, pour par exemple rechercher un nom et juste apres afficher le numero de tel de la personne. Pr cela, il faut trouver la chaine de caractere recherche, trouver le numero de ligne sur laquelle elle se trouve et il ne restera plus qu'a afficher le numer ode telephonne situé 2 ligne plus bas.
voilà le fichier tel qu'il est créer:
"
Bernard
nicolas
0268596854
Lambert
robert
0296325478
"
Merci à ce qui peuvent m'aider à faire marcher ma fonction affichage2 qui pr lem oment ne marche pas ;(