Souci avec fwrite

Souci avec fwrite - C - Programmation

Marsh Posté le 30-11-2008 à 13:19:22    

salut tout le monde :)
 
Lorsque j'écris le code suivant :  
 

Code :
  1. void gpc_gene(){
  2.     FILE * fp;
  3.     char *magic = "GPC";  // ou : char magic [] = {'G','P','C'};
  4.     int version = 1;
  5.     long int i=0;
  6.     fp = fopen ( "myfile.gpc" , "wb" );
  7.     fwrite (magic , 1 , 3 , fp );
  8.     fwrite (&version , 1 , sizeof(int) , fp);
  9.     i = ftell(fp);
  10.     printf("%ldn",i);
  11.     fclose (fp);
  12.     system("notepad myfile.gpc" );
  13. }


Le contenu de mon fichier .gpc ouvert avec un éditeur de texte contient:
 

Code :
  1. GPC[]


Alors qu'il devrait afficher le numéro de la version soit 1.
Le symbole [] représente en faite le petit rectangle que l'on croise de temps en temps (que je ne sais pas comment représenter!)
 
Vous avez une idée?

Reply

Marsh Posté le 30-11-2008 à 13:19:22   

Reply

Marsh Posté le 30-11-2008 à 13:38:34    

C'est normal. Si tu relis dans ce fichier 3 caractères et 1 entier, tu obtiendras bien GPC et 1.

 

Ce que tu vois dans ton éditeur est la représentation ASCII d'un char de valeur 1 (c'est un caractère spécial, d'où le rectangle zarb), et non le caractère "1" (code ASCII 49).

 

En somme, pour ce que tu veux faire, tu devrais plutôt utiliser fprintf().


Message édité par Elmoricq le 30-11-2008 à 13:39:07
Reply

Marsh Posté le 30-11-2008 à 13:42:40    

Ok merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed