[C] problème de détection de fin de fichier
Résolu
dji
-
dji -
dji -
Bonjour,
Le fichier toto.txt contient :
1 2
1 3
1 4
1 5
1 6
avec normalement la fin du fichier (édité avec emacs) juste après le chiffre 6. Mon but étant juste de réecire dans la console ce qu'il y a dans ce fichier.
voici un bout de mon prgramme :
char c1;
FILE *pfic;
int i=0;
pfic=fopen(toto.txt,"r");
while(pfic!=NULL){
if(i<25){
c1=fgetc(pfic);
printf("%c",c1);
if(pfic==NULL){
printf("detection de fin de fichier ");
}
i++;
}
else{exit(-1);}
}
En exécutant le prgramme j'obtiens le resulat suivant :
1 2
1 3
1 4
1 5
1 6�����
Je n'arrive pas à détecter la fin de fichier... et je ne comprends vraiment pas pourquoi? :/
Si vous avez une explication elle sera apréciée :)
Merci d avance ;)
Le fichier toto.txt contient :
1 2
1 3
1 4
1 5
1 6
avec normalement la fin du fichier (édité avec emacs) juste après le chiffre 6. Mon but étant juste de réecire dans la console ce qu'il y a dans ce fichier.
voici un bout de mon prgramme :
char c1;
FILE *pfic;
int i=0;
pfic=fopen(toto.txt,"r");
while(pfic!=NULL){
if(i<25){
c1=fgetc(pfic);
printf("%c",c1);
if(pfic==NULL){
printf("detection de fin de fichier ");
}
i++;
}
else{exit(-1);}
}
En exécutant le prgramme j'obtiens le resulat suivant :
1 2
1 3
1 4
1 5
1 6�����
Je n'arrive pas à détecter la fin de fichier... et je ne comprends vraiment pas pourquoi? :/
Si vous avez une explication elle sera apréciée :)
Merci d avance ;)
A voir également:
- [C] problème de détection de fin de fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Impossible de supprimer un fichier - Guide
- Comment réduire la taille d'un fichier - Guide
4 réponses
hmm désolé pour la présentation du source ... c'est abusé que toutes mes indentation aient été bouffées ;p
bon juste pour vous "facilitez" la lecture du programme je refais une présentation custom ;) :
char c1;
FILE *pfic;
int i=0;
pfic=fopen(toto.txt,"r");
while(pfic!=NULL){
-----if(i<25){
----------c1=fgetc(pfic);
----------printf("%c",c1);
----------if(pfic==NULL){
-----------------printf("detection de fin de fichier ");
----------}
----------i++;
------}
------else{exit(-1);}
}
bon juste pour vous "facilitez" la lecture du programme je refais une présentation custom ;) :
char c1;
FILE *pfic;
int i=0;
pfic=fopen(toto.txt,"r");
while(pfic!=NULL){
-----if(i<25){
----------c1=fgetc(pfic);
----------printf("%c",c1);
----------if(pfic==NULL){
-----------------printf("detection de fin de fichier ");
----------}
----------i++;
------}
------else{exit(-1);}
}
Salut,
ce n'est pas NULL que tu dois utiliser mais EOF(EndOfFile)
ce n'est pas NULL que tu dois utiliser mais EOF(EndOfFile)
if(c1==EOF)regarde ici lire et écrire dans des fichiers