Probleme de lecture dans un fichier en c
Fermé
ollie314
Messages postés
145
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
26 octobre 2007
-
24 avril 2005 à 19:16
ollie314 Messages postés 145 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 26 octobre 2007 - 24 avril 2005 à 20:18
ollie314 Messages postés 145 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 26 octobre 2007 - 24 avril 2005 à 20:18
A voir également:
- Probleme de lecture dans un fichier en c
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Impossible de supprimer un fichier - Guide
3 réponses
ollie314
Messages postés
145
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
26 octobre 2007
80
24 avril 2005 à 19:57
24 avril 2005 à 19:57
je vens de faire un chtite modif en fait
voici ...
while(fgets(ligne,sizeof(ligne),auth)&&existe==0)
{
if(strcmp(mbr.login,ligne)==0)
{
fgets(ligne,sizeof(ligne),auth);
if(strcmp(mbr.mdp,ligne)==0)
{
//le login et le pass sont identique..
existe=1;
}
}
else
{
//fgets(ligne,sizeof(ligne),auth); pas besoin de cette ligne c'etait //pour sauter une ligne dans le fichier
}
}
}
..
mais ça change rien
voici ...
while(fgets(ligne,sizeof(ligne),auth)&&existe==0)
{
if(strcmp(mbr.login,ligne)==0)
{
fgets(ligne,sizeof(ligne),auth);
if(strcmp(mbr.mdp,ligne)==0)
{
//le login et le pass sont identique..
existe=1;
}
}
else
{
//fgets(ligne,sizeof(ligne),auth); pas besoin de cette ligne c'etait //pour sauter une ligne dans le fichier
}
}
}
..
mais ça change rien
Que dis la doc ??
Je suis quasiment convaincu qu'il n'y a pourtant pas de '\n' dans mbr.login ou mbr.mpd, donc strcmp() foire.
Par contre ta modif est fausse (si tu fait ça, tu décale les comparaison, i.e. tu compare les mots de passe du fichier avec le login de la structure mbr.Bref, pas beau...
fgets() lit au plus size - 1 caractères depuis stream et les place dans le buffer pointé par s. La lecture s'arrête après EOF ou un retour- chariot. Si un retour-chariot (newline) est lu, il est placé dans le buffer. Un caractère nul '\0' est placé à la fin de la ligne.
Je suis quasiment convaincu qu'il n'y a pourtant pas de '\n' dans mbr.login ou mbr.mpd, donc strcmp() foire.
Par contre ta modif est fausse (si tu fait ça, tu décale les comparaison, i.e. tu compare les mots de passe du fichier avec le login de la structure mbr.Bref, pas beau...
ollie314
Messages postés
145
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
26 octobre 2007
80
24 avril 2005 à 20:18
24 avril 2005 à 20:18
merci pour ta reponse, je ne suis pas sûr de comprendre....
voila la function d'inscription
int inscr_membre(membre mbr)
{
FILE *auth;
if(user_existe(mbr)==1)
{
return 0;
}
else
{
auth=fopen(agenda_login,"a");
if(auth !=NULL)
{
fprintf(auth,"%s\n",mbr.login);
fprintf(auth,"%s\n",mbr.mdp);
return 1;
}
else
{
return 0;
}
}
fclose(auth);
}
1 si ok 0 sinon;
pour saisir mr.login par exemple je fais..
scanf("%s",mbr.login);
donc normalement il ne devrait pas y avoir de \n superflu ( a moins que le scanf n'en induise un mais mes tests et mes lectures m'ont prouvé le contraire.... c'est louche..
pour la modif, c'est bon en fait j'avais pas vu les deux "}"
encore merci !!
voila la function d'inscription
int inscr_membre(membre mbr)
{
FILE *auth;
if(user_existe(mbr)==1)
{
return 0;
}
else
{
auth=fopen(agenda_login,"a");
if(auth !=NULL)
{
fprintf(auth,"%s\n",mbr.login);
fprintf(auth,"%s\n",mbr.mdp);
return 1;
}
else
{
return 0;
}
}
fclose(auth);
}
1 si ok 0 sinon;
pour saisir mr.login par exemple je fais..
scanf("%s",mbr.login);
donc normalement il ne devrait pas y avoir de \n superflu ( a moins que le scanf n'en induise un mais mes tests et mes lectures m'ont prouvé le contraire.... c'est louche..
pour la modif, c'est bon en fait j'avais pas vu les deux "}"
encore merci !!