Bonjour!
Voila, j'ai un petit soucis...
Je voudrai faire une fonction d'ecriture et de lecture qui puissent fonctionner que ce soit en mode binaire ou en mode txt.
J'ai l'impression que l'operateur << ne marche pas en mode binaire, je me trompe?

Voici mon code d'ecriture pour le text et le binaire :

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
 
*/  	
void maClasse::writeTextFile (vector<string> vParameters)
{
ifstream _fWrite:
_fWrite.open ("monfichier", ios::out) ;
	for (unsigned int i = 0 ; i < vParameters.size() ; i++)
	{
		_fWrite << vParameters[i] << "\t" ;
	}
 
	_fWrite << endl ;
}
 
template<typename T>
std::ostream& write(std::ostream& os, const T& value)
{
    return os.write(reinterpret_cast<const char*>(&value), sizeof(T));
}
 
 
void maClasse::writeBinaryFile (vector<string> vParameters)
{
ifstream _fWrite:
_fWrite.open ("monfichier", ios::out|ios::binary) ;
	for (unsigned int i = 0 ; i < vParameters.size(); i++)
	{
		string value = vParameters[i] ;
		write (_fWrite, value) ;
	}
}
N'y a t'il pas un moyen de n'avoir qu'une seule fonction?

Maintenant la lecture...
Pour lire du texte, pas de soucis.
Par contre, je n'arrive pas a lire mon fichier binaire et a recuperer les strings que j'ai ecris...
Voila mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
void maClasse::readBinaryFile (vector<string> &vParameters)
{
    ifstream _fRead ;
    _fRead.open ("monfichier", ios::in|ios::binary) ;
	string buffer = "";
 
	while (!_fRead.eof())
	{
		_fRead.read(reinterpret_cast<char*>(&buffer), sizeof(string));
	}
}
Avez vous une idee ? peut on lire des string en binaire?

Merci!!