file.write(integer,size) ?

file.write(integer,size) ? - C++ - Programmation

Marsh Posté le 09-08-2012 à 20:52:33    

Bonjour,
Pour un projet que je réalise, j'aurais besoin de faire des write() en spécifiant directement la valeur de l'entier dedans. ex:
 

Code :
  1. ofstream file("myfile",ios::out | ios::binary);
  2. file.write(16,4);


 
Cela dit je n'arrive pas à le faire comprendre au compilateur qui attend un char*
 
Je sais qu'on peut feinter en stockant la valeur dans une variable et en faisant file.write((char*)&mavariable,4) mais vu que j'ai une dizaine de ces write à faire j'aimerais pouvoir directement écrire ma valeur dans l'appel à la fonction. Est-ce possible ?
 
Thanks

Reply

Marsh Posté le 09-08-2012 à 20:52:33   

Reply

Marsh Posté le 09-08-2012 à 21:45:14    

Puisque tu as un ofstream, pourquoi ne fais tu pas  
file<<4;
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 09-08-2012 à 21:51:06    

Le pb c'est que je dois écrire certaines valeurs codés sur 4 octets et d'autres sur 2 octets (en fait j'écris un header de fichier wave). Il me semble pas que l'opérateur << permette de spécifier le formattage ?
Bon pour l'instant j'ai mis mes variables int pour avancer, mais si quelqu'un a la solution je suis toujours preneur :)

Reply

Marsh Posté le 10-08-2012 à 11:23:48    

Ah, j'ai compris ton pb.
Non, il faut que tu emploies la technique file.write(reinterpret_cast< char* >( &mavariable ), sizeof( mavariable ) )
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

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