[C++] lecture/ecriture dans fichier txt/binary
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:
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:
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!!