[debutant] ecriture dans la memoire et/ou fichier
Bonjour!
Je cherche un moyen pour ecrire des donnees brutes dans un stream, qui peut pointer indifferment vers de la memoire ou vers un fichier.
exemple:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
LectureStream(stream *MonStream)
{
/* je lis mes donnes brutes avec MonStream->read*/
}
int main()
{
fstream MonFichier(...);
stringstream MaMemoire(...);
/* je ne sais pas ce que je dois utiliser pour avoir un*/
/* stream pointant sur de la memoire car ce n'est pas*/
/* un string... c'est quand meme ca qu'il faut utiliser??*/
LectureStream((stream *) &MonFichier);
LectureStream((stream *) &MaMemoire);
} |
Bon vous l'avez surement remarque, je suis super habitue au C mais pas au C++... et donc les entrees sorties :?
Autre question, je fais comment pour ecrire/lire des donnes brutes?? parceque quand j'utilise ce code, je n'ai pas du tout les valeurs desirees dans le fichier:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#include <iostream>
#include <fstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
// Ouvre le fichier de données :
fstream f("fichier.txt", ios_base::in | ios_base::out | ios_base::trunc);
if (f.is_open())
{
// valeurs hexa de '1'->0x31 et '2'->0x32
short sVal = 0x3132;
f.write(reinterpret_cast < char *> (&sVal), sizeof(short));
sVal++;
f.write(reinterpret_cast < char *> (&sVal), sizeof(short));
// oblige de metre ca sinon 'VALEUR' n'apparait pas dans le fichier
f.seekg(ios_base::end);
f << "VALEUR = " << sVal << endl;
// Ferme le fichier :
f.close();
}
return 0;
} |
resultat dans le fichier:
alors que je veux
Merci d'avance pour vos suggestions!