momoko94
Messages postés6Date d'inscriptionmardi 6 mai 2008StatutMembreDernière intervention 2 mai 2009
-
1 mai 2009 à 09:54
momoko94
Messages postés6Date d'inscriptionmardi 6 mai 2008StatutMembreDernière intervention 2 mai 2009
-
2 mai 2009 à 12:08
Bonjour,
voila le problème, je voudrais rechercher dans un fichier le nombre d'etudinats d'une ville et l'afficher.
typedef struct
{
char nom_ville[30];
int population;
int nb_etudiant;
}ville;
printf(" vous etes ici pour lire les informations sur une ville\n");
printf("entrer le nom d'une ville \n");
gets(villemain.nom_ville);
if(villemain.nom_ville)
{
printf("la ville est dans le fichier\n\n");
printf("population ou nombre d'etudiants\n");
gets(choix_info);
if(strcmp(choix_info,"nombre d'etudiants")==0)
{
while(fgets(ligne,sizeof(ligne),pt)!=NULL)
{
printf("%s",ligne);
}
while(erreur=fread(&villemain,sizeof(ville),1,pt)!=(feof(pt)))
{
if(erreur==0)
{
return 0;
fclose(pt);
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 1 mai 2009 à 10:52
Salut,
Pour commencer, je te colle ici un extrait du man de gets() :
«Never use gets(). Because it is impossible to tell without knowing the
data in advance how many characters gets() will read, and because
gets() will continue to store characters past the end of the buffer, it
is extremely dangerous to use. It has been used to break computer
security. Use fgets() instead.»
A ce niveau là tu sais ce qu'il te reste a faire
Ensuite, je vois que tu effectue régulièrement ceci :
{
return 0;
fclose(pt);
}
Ton fclose() ne sera jamais effectué vu que le return te fait sortir de la fonction courrante.
Sinon, si tu veux tester la présence du nom de la ville dans une ligne, tu peux utiliser la fonction strstr() et regarder elle retourne NULL (cas où la chaine n'est pas trouvée) ou autre chose (un pointeur vers la première ocurence de la chaine recherchée). Dans tous les cas fait attention a la casse, 'a' != 'A'.
momoko94
Messages postés6Date d'inscriptionmardi 6 mai 2008StatutMembreDernière intervention 2 mai 2009 2 mai 2009 à 12:08
pour faire strstr il me faut 2 variables or je n'ai que le villemain.nomville, il faut que j'arrive a lire le fichier pour recuper les villes du fichier avec une variable ou alors je me debrouille avec fseek