Erreur lecture fichier en C
Résolu/Fermé
A voir également:
- Erreur lecture fichier en C
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Erreur 0x80070643 - Accueil - Windows
- Ouvrir fichier .bin - Guide
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
11 mars 2009 à 11:55
11 mars 2009 à 11:55
Salut,
C'est normal, tu demandes au compilateur de mettre une séquence de caractères (%s de scanf) dans un caractère (ligne est de type char).
De plus, ta lecture de fichier n'est pas complète. Tu perdras une lettre à cause de fgetc à chaque scanf.
Utilise plutôt :
fgets va te lire toute la ligne (à condition qu'elle contienne moins de 255 caractères), et ne s'arrêtera pas au premier espace.
Enfin, en C, le prototype de main est : int main(void).
Cdlt
C'est normal, tu demandes au compilateur de mettre une séquence de caractères (%s de scanf) dans un caractère (ligne est de type char).
char ligne[256];
De plus, ta lecture de fichier n'est pas complète. Tu perdras une lettre à cause de fgetc à chaque scanf.
Utilise plutôt :
while (fgets(ligne,sizeof ligne,fichier)!=NULL) { printf("%s",ligne); //ou simplement puts(ligne); }
fgets va te lire toute la ligne (à condition qu'elle contienne moins de 255 caractères), et ne s'arrêtera pas au premier espace.
Enfin, en C, le prototype de main est : int main(void).
Cdlt
JR des cavernes
Messages postés
152
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
19 mai 2009
84
11 mars 2009 à 11:29
11 mars 2009 à 11:29
Salut,
Tu obtiens un message d'erreur....c'est à dire ?
Tu obtiens un message d'erreur....c'est à dire ?
11 mars 2009 à 14:09
En effet je n'avais pas compris que le type char ne contenait en fait qu'un seul caractère. Si j'ai bien suivi on défini donc un tableau de caractère pour stocker une chaîne?
Je viens de chercher sur internet la difference entre fgets et fgetc et en effet c'est fgets qui est le plus approprié ici.
Encore merci pour ton aide qui m'a été très précieuse, mon programme fonctionne sans problème maintenant, il ne me reste plus qu'a le finir :)