c++ std:string en hexad�cimal ?
Hello
tout est dans le titre:
le probl�me a la base ,c'est les nom de fichier, vu qu'on peux y mettre casiment tout et n'importe quoi... je vai tout convertir en format hexa, sa devrai alors plus poser de probl�me. seulment voila on dirait que c'est faux ...
voila un exemple:
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 <string>
#include <sstream>
#include <cstring>
#include <exception>
#include <iomanip>
using namespace std;
std::string toHex(const std::string& instr)
{
using namespace std;
ostringstream oss;
oss << hex << setw(2) << setfill('0');
for(string::const_iterator i = instr.begin(); i != instr.end(); ++i)
{
if(i != instr.begin())
{
oss << ":";
}
//oss << "0x" << static_cast<unsigned short>(*i);
oss << "" << static_cast<unsigned short>(*i);
}
return oss.str();
}
int main()
{
std::cout << toHex("Ma�anaDB.pdb (codage non valide)") << std::endl;
return 0;
} |
j'obtien:
Citation:
004d:61:ffef:ffbf:ffbd:61:6e:61:44:42:2e:70:64:62:20:28:63:6f:64:61:67:65:20:6e:6f:6e:20:76:61:6c:69:64:65:29
je me demande si la sortie est vraiment valable car:
Citation:
004d:61:ffef:ffbf:ffbd
semble erronn�e c'est lier aux caract�re : � ici j'ai l'impretion que apres le Ma sa pose souci si quelqu'un a une id�e je suis preneur
Merci d'avance