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:
Bon vous l'avez surement remarque, je suis super habitue au C mais pas au C++... et donc les entrees sorties
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
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:
resultat dans le fichier:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
alors que je veux
Code : Sélectionner tout - Visualiser dans une fenêtre à part 21VALEUR = 12595
Merci d'avance pour vos suggestions!
Code : Sélectionner tout - Visualiser dans une fenêtre à part 2131VALEUR = 12595
Partager