toujours mon problème d'écriture dans un fichier

toujours mon problème d'écriture dans un fichier - C++ - Programmation

Marsh Posté le 05-07-2002 à 16:57:14    

int n=5;
 
FILE * sortie;
 
sortie=fopen("toto","w" );
fwrite(&n,sizeof(int),1,sortie);
fclose(sortie);
 
quand je veux visualiser le contenu du fichier toto, je fais
'vi toto' et j'ai ça dans mon fichier: ^E^@^@^@ au lieu de 5 !!
 

Reply

Marsh Posté le 05-07-2002 à 16:57:14   

Reply

Marsh Posté le 05-07-2002 à 16:59:38    

et tu penses qu'en faisant un 2ième topic, on va 2 fois plus te répondre....  :sarcastic:  :sarcastic:  :sarcastic:  :sarcastic:

Reply

Marsh Posté le 05-07-2002 à 17:00:06    

Gaspard a écrit a écrit :

int n=5;
 
FILE * sortie;
 
sortie=fopen("toto","w" );
fwrite(&n,sizeof(int),1,sortie);
fclose(sortie);
 
quand je veux visualiser le contenu du fichier toto, je fais
'vi toto' et j'ai ça dans mon fichier: ^E^@^@^@ au lieu de 5 !!
 
 




tu es oblige de transformer ton int en un char pour l'ecrire dans ton fichier


Message édité par try58 le 05-07-2002 à 17:00:23

---------------
LOVE & PEACE !!! [:kirvel]
Reply

Marsh Posté le 05-07-2002 à 17:02:26    

j'ai simplifié le pb depuis le dernier message, c'est plus un tableau timeval que je veux mettre dans le fichier, mais un entier que je veux pouvoir visualiser quand je fais vi monfichier :D

Reply

Marsh Posté le 05-07-2002 à 17:08:24    

Tu utilises quoi? parce que avec VC++, tu peux faire simplement :

Code :
  1. CString tmp;
  2. int nb;
  3. tmp.Format(TEXT("%d" ), nb);
  4. fopen(...);
  5. fwrite(tmp.GetBuffer(), ... , ...);
  6. fclose(...);


---------------
LOVE & PEACE !!! [:kirvel]
Reply

Marsh Posté le 05-07-2002 à 17:12:49    

2 solutions :
 

Code :
  1. int n=5;
  2. FILE * sortie;
  3. sortie=fopen("toto","w" );
  4. fprintf(sortie,"%d",n);
  5. fclose(sortie);


 
ou
 

Code :
  1. int n=5;
  2. FILE * sortie;
  3. char buffer;
  4. sortie=fopen("toto","w" );
  5. sprintf(buffer,"%d",n);
  6. fwrite(&buffer,sizeof(char),1,sortie);
  7. fclose(sortie);


 
Voilà, je pense qu'avec ça, ça devrait marcher !
 
 

Reply

Marsh Posté le 05-07-2002 à 17:13:13    

j'utilise gcc mais là je vais aller dormir un peu pour me reposer le cerveau
merci et bon week end

Reply

Marsh Posté le 08-07-2002 à 14:01:39    

merci torpe23
 
le fprintf, c'est ce que je voulais

Reply

Marsh Posté le 08-07-2002 à 15:15:08    

Il faut faire TRES attention aux buffer overflow avec sprintf(buffer,"%d",n);. Il faut correctement alloué la taille de buffer de sortie par rapport a la valeur d'entrée

Reply

Sujets relatifs:

Leave a Replay

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