lu tous et toutes!
voila mon pb:
j'ai un fichier texte, avec par ex écrit dedans "je suis le roi des cons"
je désirerais ouvrir ce fichier et stocker le tout dans un flux, mais sous forme binaire
pour cela j'ai créé une fonction qui lit le fichier txt caractere par caractere, envoie ce char à ma fonction CharToBinary ci-dessous:
Code :
- std::string CharToBinary(char c) // encode un caractere ASCII en binaire sur 8bits
- {
- int cpt = 0; //compte le nb de bit
- int dividende = int(c);// caractere ascii a coder en binaire;
- int reste; // dividende%2
- int resultat; // dividende/2
- std::string s, s2;
- std::stringstream sstr;
- while(dividende >= 2)
- {
- cpt++;
- reste = dividende%2;
- resultat = dividende/2;
- dividende = resultat;
- sstr<<reste;
- }
- reste = dividende%2; // on effectue la derniere etape de la division
- sstr<<reste;
- s = sstr.str(); // convertion du flux en string
- for (int i = cpt+1; i<8; i++) //on complete le nombre sur 8bits avec des 0
- {
- s.insert(s.size(), 1, '0');
- }
- for (int i = 7; i>=0; i--) //on met le palindrome de s dans s2
- {
- s2.insert(s2.size(), 1, s[i]);
- }
- return s2;
- }
|
donc on prend la valeur ASCII du char et on transforme ça en binaire...
est-ce que je réinvente la roue là???
pcq j'ai vu dans les options d'ouverture de fichier ça:
Code :
- ifstream ifstr("fichier.txt", ios::binary);
|
et ce ios::binary, que je le mette ou non, ça ne change rien quan j'affiche le contenu.
thx
++
Message édité par Riot le 19-11-2003 à 11:27:45