Programmation en C, lecture dans un fichier

Fermé
matthymatt - 11 mars 2010 à 22:47
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 11 mars 2010 à 23:42
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 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
11 mars 2010 à 23:42
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