Problème avec feof - C++ - Programmation
Marsh Posté le 17-05-2003 à 22:29:58
Oui, bien sûr. J'ai simplement enregistré un fichier texte sans extension sous un éditeur hexa.
Marsh Posté le 18-05-2003 à 11:42:37
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
c'est comme pour les retraites ? =)
Marsh Posté le 18-05-2003 à 13:34:29
T'es pas le premier à me dire ça, je vais finir par l'enlever cette signature
Celà dit, des gens se servent de feof, pourquoi pas moi ?
J'ai lu dans l'aide de TurboC :
Citation : Portability : |
feof ne fonctionnerait que pour UNIX ?
Marsh Posté le 18-05-2003 à 16:53:19
Citation : Oui, bien sûr. J'ai simplement enregistré un fichier texte sans extension sous un éditeur hexa. |
Et tu l'as enregistré ou ? Dans le repertoire courant surement ... et tu tests en double cliquant sur ton exe ... eh ben il va chercher dans le PATH, à savoir C:\WINDOWS, et autre ... mais pas dans ton rep courant (a moins que tu le lance depuis une console). Donc il trouve pas le fichier.
Pour etre sur qu'il ouvre le fichier, ce serait tellement simple de tester ce que revoie fopen !
Marsh Posté le 20-05-2003 à 00:10:05
Tant que l'on n'a pas fait avancer le pointeur dans le fichier, il est à zéro (première position). Que le fichier soit vide ou non, on n'a pas encore atteint la fin de fichier. Pour tester cette condition, il faut lire au moins un caractère.
Marsh Posté le 17-05-2003 à 18:04:12
Je suis sous Windows 2000 et si je lance ce programme :
#include <stdio.h>
void main (void)
{
FILE * NomLog;
NomLog = fopen ("Fic", "r" );
printf ("%d", feof(NomLog));
fclose (NomLog);
}
feof retourne 32 que le fichier Fic soit vide ou non
Une idée ?