PROBLEME DElecture d'un fichier

Résolu
africanwinners Messages postés 9 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 20 mars 2010 - 11 mars 2010 à 15:05
africanwinners Messages postés 9 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 20 mars 2010 - 12 mars 2010 à 23:36
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

fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
11 mars 2010 à 17:06
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.
3
africanwinners Messages postés 9 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 20 mars 2010
12 mars 2010 à 23:36
merci beaucoup
c'est la solution au problème
merci pour l'aide
0
Rejoignez-nous