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

 


Dernière réponse
Sujet : [C] fgetc, fputc... HLp Svp
mogi

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.


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
mogi

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.

Un4GivN C'est correct je l'ai eu ! Simple petite erreur de logique :ange:
 
while(feof(pfichier) == 0)
{
    c = fgetc(pfichier);
    fputc(c, pfichier2);
}
flo850 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);
gilou 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]

Un4GivN 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 ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)