Programmation en C, lecture dans un fichier

matthymatt -  
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je cherche a stocker des informations dans un fichier (ca, ca va), et ensuite de n'en retirer qu'une partie (ca ca va plus)

en debut de programme, je demande donc de renter un nom, un mot de passe, etc... et je les stock dans un fichier comme cela :

dans le fichier :
nom
mot de passe
numero
age
*
nom
mot de passe
numero
age
*

Les infos qui concernent les differents utilisateurs sont donc séparées par un symbole (ici une etoile). Je souhaite ensuite retirer le nom d'un utilisateur. Prenons l'exemple ou il n'y a qu'un utilisateur. Je cherche a retirer une info et je rentre ce code :

Programe en C :

char etoile[TAILLE_MAX]= "*" ;
char chaine[TAILLE_MAX];
[...]
fichier = fopen("test.text","r");
    if(fichier!=NULL)
    {
        while(fgets(chaine,TAILLE_MAX, fichier)!=NULL)
        {
            if(strcmp(chaine,etoile)!=0)
            {
                printf("%s",chaine);
                strcpy(nom2,chaine);
            }
        }
        fclose(fichier);
    }



//Affichage du résultat
printf(" resultat : nom joueur : %s ", nom2);


Normalement, je devrait obtenir la dernier info rentre par le joueur (ici son age)
Mais le programme m'affiche la derniere etoile ......

Ou est le probleme svp???
A voir également:

1 réponse

fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Bonsoir,
fgets va te stocker le caractère de fin de ligne ('\n') s'il a la place dans ta chaîne de caractère. Pour bien faire, il te faudrait soit retirer le '\n' (en utilisant strchr), soit tu ne compares pas avec "*" mais avec "*\n".

Cdlt,
0