Problème avec fgets
Fermé
Pica
-
9 févr. 2008 à 18:07
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 9 févr. 2008 à 23:33
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 9 févr. 2008 à 23:33
4 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
9 févr. 2008 à 18:15
9 févr. 2008 à 18:15
Salut,
Comment as-tu utilisé fgets ? Donne toute la commande que tu as écrite.
Comment as-tu utilisé fgets ? Donne toute la commande que tu as écrite.
#define LINE_LENGTH 200
FILE *pFileSrc;
char tcLine[LINE_LENGTH];
char tcType[LINE_LENGTH];
char tcType1[LINE_LENGTH];
char tcType2[LINE_LENGTH];
while (fgets (tcLine, LINE_LENGTH-1, pFileSrc) != NULL)
{
/* Scan de la ligne */
sscanf (tcLine, "%s%s%s", tcType,tcType1,tcType2);
Pourtant le fichier est bien balayé en entier.
FILE *pFileSrc;
char tcLine[LINE_LENGTH];
char tcType[LINE_LENGTH];
char tcType1[LINE_LENGTH];
char tcType2[LINE_LENGTH];
while (fgets (tcLine, LINE_LENGTH-1, pFileSrc) != NULL)
{
/* Scan de la ligne */
sscanf (tcLine, "%s%s%s", tcType,tcType1,tcType2);
Pourtant le fichier est bien balayé en entier.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
9 févr. 2008 à 19:27
9 févr. 2008 à 19:27
Déjà, tu peux mettre fgets (tcLine, LINE_LENGTH,..) pas besoin du -1.
Sinon, comment est structuré ton fichier ?
Sinon, comment est structuré ton fichier ?
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
9 févr. 2008 à 23:33
9 févr. 2008 à 23:33
Bonsoir,
Je ne comprends pas très bien le problème posé, j'ai testé chez moi et je n'ai vu aucune ligne en double.
Par contre comme tu le mentionnes pense à ré-initialiser tes tableaux.
Ne serait-ce pas cela qui t'a induit en erreur en contrôle visuel des résultats ? Suivant la structure
de chaque enregistrement les tableaux reproduisent les valeurs précédentes (derniere
affectation d'une valeur pars scanf) dans le cas où ils ne sont pas renseignés lors du traitement de
l'enregistrement en cours.
Si j'ai bien compris le problème !
Cordialement.
Cchristian.
Je ne comprends pas très bien le problème posé, j'ai testé chez moi et je n'ai vu aucune ligne en double.
Par contre comme tu le mentionnes pense à ré-initialiser tes tableaux.
Ne serait-ce pas cela qui t'a induit en erreur en contrôle visuel des résultats ? Suivant la structure
de chaque enregistrement les tableaux reproduisent les valeurs précédentes (derniere
affectation d'une valeur pars scanf) dans le cas où ils ne sont pas renseignés lors du traitement de
l'enregistrement en cours.
Si j'ai bien compris le problème !
Cordialement.
Cchristian.