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

  FORUM HardWare.fr
  Programmation

  [C] fgetc, fputc... HLp Svp

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] fgetc, fputc... HLp Svp

n°80437
Un4GivN
Posté le 10-12-2001 à 23:43:23  profilanswer
 

FILE *pfichier, *pfichier2;
....
while(!eof(pfichier))
{
   c = fgetc(pfichier);
   fputc(c, pfichier2);
}
Lors de la compilation le prog ne passe pas dans le while. QUelqu'un a une idée ?

mood
Publicité
Posté le 10-12-2001 à 23:43:23  profilanswer
 

n°80448
gilou
Modérateur
Modzilla
Posté le 11-12-2001 à 04:55:57  profilanswer
 

Oui, probablement ton fichier n'est pas ouvert.
au fait, eof()... Y'a pas feof() dans les librairies de ton compilo? c'est plus standard, feof().
A+,

 

[edtdd]--Message édité par gilou--[/edtdd]


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°80466
flo850
moi je
Posté le 11-12-2001 à 10:02:13  profilanswer
 

essaye ce code:
FILE *p_in,*p_out;
p_in=fopen("monfichier","rt" );
p_out=fopen("fichier_sortie","wt);
while(!feof(p_in))
{
 c=fgetc(p_in);
 fputc(c,p_out);}
fclose(p_in);
fclose(p_out);


---------------

n°80529
Un4GivN
Posté le 11-12-2001 à 13:37:53  profilanswer
 

C'est correct je l'ai eu ! Simple petite erreur de logique :ange:
 
while(feof(pfichier) == 0)
{
    c = fgetc(pfichier);
    fputc(c, pfichier2);
}

n°80781
mogi
Posté le 12-12-2001 à 08:29:03  profilanswer
 

Un4GivN a écrit a écrit :

C'est correct je l'ai eu ! Simple petite erreur de logique :ange:
 
while(feof(pfichier) == 0)
{
    c = fgetc(pfichier);
    fputc(c, pfichier2);
}  




 
:non: (once again)
 
quelque part à l'intérieur de l'OS, il y a un flag dans les descripteurs de fichier qui est positionné non pas quand on est à la fin du fichier, mais quand on a essayé de lire en dehors du fichier (pas pareil, madame, goûtez... ben, non, pas le même goût...)
 
la fonction feof, elle fait juste que tester ce flag. moralité : il faut essayer de lire, tester et passer à la suite.
 
c = fgetc(pfichier);
while(!feof(pfichier))
{
    fputc(c, pfichier2);
    c = fgetc(pfichier);
}  
 
avec ton prog, si tu es sur une machine à complément à 2 (t'es sur wintel ? => t'es en complément à 2) et si tu utilises un char pour c, alors ton fichier cible devait comporter un octet supplémentaire (un caractère de code ASCII 255).
 
je sais pas vous, mais dans ton cas, j'utiliserai pas le feof puisque fgetc te donne déjà l'information EOF. mais dans ce cas, il ne faut pas oublier de mettre c en int :
 
int c;
 
c = fgetc(pfichier);
while( c != EOF )
{
    fputc(c, pfichier2);
    c = fgetc(pfichier);
}  
 
ok, j'avoue, j'suis rien qu'un intégriste, je ne recommencerai pas... promis :crazy:
 
Mogi.


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

  [C] fgetc, fputc... HLp Svp

 

Sujets relatifs
[Delphi] A propos des trackbar SVP !!!Un bon programmeur de C SVP... strcat et char...
Shell UNIX : Aidez moi SVP Faire un ls -r en script shellDonnez moi vos idées de projet SVP !
[c++] Un coup de main SVP pour un prog[ Les STARS d'OPENGL et GLUT HELP SVP ] => gestion souris
Pouvez vous traduire ce .bat, SVP ?Faire une BOUTIQUE Online SVP
Chacun de ces 4 algorithmes contient une erreur. Laquelle ? SVP !!!!![VC++] Raccourci Clavier SVP Galère inside !!
Plus de sujets relatifs à : [C] fgetc, fputc... HLp Svp


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