Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1066 connectés 

  FORUM HardWare.fr
  Programmation

  [C] Fichiers et EOF

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Fichiers et EOF

n°18470
Evadream -​jbd-
Posté le 13-03-2001 à 23:20:15  profilanswer
 

Bonsouaaaaaar tout le monde, me revoila avec cette fois si un soucis avec les fichiers. Voici le code :
 
#include<stdio.h>
#include<alloc.h>
#include<string.h>
#include<conio.h>
 
 
void listing (FILE* nom);
 
void main()
 {
   FILE*   fichier;
   int     i=0,j=0;
   char*   nom_fichier = (char*)malloc(sizeof(char));
   char    chaine[255];
   long    curpos;
 
 
 
   printf("Nom du fichier : \n\n" );
   gets(nom_fichier);
 
   fichier = fopen(nom_fichier,"w" ); // on ouvre le fichier
 
   if ( fichier == NULL ) printf("\nErreur de création du fichier %s ", nom_fichier);
 
   while ( j <= 4 )
    {
      highvideo();
      cprintf("\nEntrer une chaine de caractere quelconque :\n" );
      gets(chaine);
      fprintf(fichier,"%s\n",chaine);
      j++;
      }
 
   fputc(26,fichier); // la je rajoute pas EOF ?
   listing(fichier);
   fclose(fichier); // on ferme le fichier
 
   }
 
 
void listing (FILE* nom)
 {
   char rep;
 
   while ( feof(nom) == 0 )
    {
      rep = fgetc(nom);
      printf("%c",rep);
      }
   }
 
Je ne comprends pas pourquoi je n'ai pas de caractere de fin de fichier, pourtant je le rajoute non ?

mood
Publicité
Posté le 13-03-2001 à 23:20:15  profilanswer
 

n°18472
Evadream -​jbd-
Posté le 13-03-2001 à 23:40:57  profilanswer
 

Je dis que je n'ai pas de caractere de fin de fichier car je boucle à l'infini ds ma fonction listing.

n°18473
wouatouwou​atou
Posté le 13-03-2001 à 23:43:55  profilanswer
 

le caractere de fin de fichier... tu peux pas le rajouter... :lol:

n°18474
wouatouwou​atou
Posté le 13-03-2001 à 23:52:40  profilanswer
 

bon, plus serieusement...
Le caractere de fin de fichier 'EOF', bah... c pour simplifier une sorte de flag ki se met a true qd tes a la fin du fichier... t'a pas a le gerer ...
 
Dans mes souvenirs, une condition en C est vrai si elle vaut zero, non ?
donc, en principe ta boucle bah.. elle sert pas a grd chose ici... puisque tu ecris qqchose dans ton fichier...
En d'autres termes, tu rentres jamais dedans !!!
Et si ton fichier est vide, ben elle devient une boucle infinie !!!! Tu vois le truc ?!
Bref, fo voir ce ke te retourne le feof()...
Il me semble kelle te retourne vrai si tes en fin de fichier (FileEndOfFile) et fo sinon...
Donc change ta condition du while pour voir...

n°18477
Evadream -​jbd-
Posté le 13-03-2001 à 23:59:08  profilanswer
 

feof retourne zero lorsque la fin de fichie n'est pas atteinte.
 
Mais avec fprintf, le caractere de fin de chaine n'est pas rajouté.

n°18479
BifaceMcLe​OD
The HighGlandeur
Posté le 14-03-2001 à 00:05:29  profilanswer
 

Je dirais que normalement, le fait de fermer le fichier ajoute ce qu'il faut pour qu'il y ait une fin de fichier. Donc ferme ton fichier d'abord, puis rouvres-le en lecture seule ensuite.
 
Evadream> Juste pour le style... De façon abstraite, une fonction endOfFile() doit renvoyer un booléen. En C, c'est parce qu'il n'y a pas de type booléen que feof() renvoie un entier. Mais dans ton code, c'est plus joli d'écrire "while (!feof(file)) ..." que "while (feof(file) == 0) ...".
 
Et puis "FILE* nom", ça fait un peu bizarre. Parce qu'en voyant une variable qui s'appelle "nom", j'aurais plutôt dit que c'était une variable de type string... (qui contenait un nom, quoi)

n°18480
Evadream -​jbd-
Posté le 14-03-2001 à 00:08:49  profilanswer
 

Je note tout ca, et je vois ca demain :)
Je suis trop mort.
 
Bonne nuit @ tous !

n°18497
End-i
Posté le 14-03-2001 à 05:19:48  profilanswer
 

pour lire un fichier jusqu'à la fin je fais toujours:
 
while (!feof(Fichier))
{
   fgets(...
   ...
}
 
je sais pas si ca peut t'aider mais bon....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] Fichiers et EOF

 

Sujets relatifs
comment utiliser les fichiers de 3D Studio avec Open GL ?[php] un site qui charge des fichiers lui même sur d'autres sites?
[ASP] Accès aux fichiers sur un PC distantASP : Do while not EOF ....
[C/UNIX] Lire des fichiers .mid ou .wav[Algo] lister les fichiers récursivement
[Delphi 5 std] Fichiers indexés, ou autre solution...[PERL ?] URGENT : Commande avancée pour déplacer les fichiers
[Flash] cherche fichiers *.flaConversion : Fichiers DOC en HTML...
Plus de sujets relatifs à : [C] Fichiers et EOF


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR