PROBLEME DElecture d'un fichier

[Résolu]
Signaler
Messages postés
9
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
20 mars 2010
-
Messages postés
9
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
20 mars 2010
-
Bonjour tout le monde
j'ai fait un code qui permetde lire le contenu d'un fichier.
mais il affiche un faux résultat qui ne correspond pas au fichier lu:

#include<stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
FILE* fichier = NULL;
FILE * sortie;
int caractereActuel = 0;
int i=0;
char chaine[100];

fichier = fopen("k","r");
sortie = fopen("l", "w");
if (fichier != NULL)
{

// Boucle de lecture des caractères un à un
do

{
fgets(chaine,100,fichier);
fputs(chaine,sortie),
printf("%s", chaine);
caractereActuel = fgetc(fichier); // On lit le caractère
// On l'affiche
i=i+1;

} while (caractereActuel != EOF); // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)

fclose(fichier);
fclose(sortie);
}

return 0;

il affiche un caractère manquant pour toute les lignes par ex
au lieu de dommage il affiche ommage
au lieu de le :le

voila le résultat:
<DOC 30>
e
rogue
n
rance
e
onsommation
e
e
rogue

au lieu de

<DOC 30>
le
drogue
en
France
le
consommation
de
le
drogue


merci d'avance

2 réponses

Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
je crois que ton souci est là:
caractereActuel = fgetc(fichier); // On lit le caractère

Tu lis le caractère, donc ca incrémente le pointeur de lecteur et le fgets commence après.

utilise la fonction feof pour savoir si tu es à la fin.
Messages postés
9
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
20 mars 2010

merci beaucoup
c'est la solution au problème
merci pour l'aide