Alors voila, je code un programme de cryptage par la fonction xor. Le xoring dépend de la lettre précédente.
J'utilise Fstream pour lire/ecrire dans mes fichiers. Cependant le xoring arrive de temps a autre sur 0x1A, c'est a dire "Substitution".
Et le programme bloque lorsque il rencontre un Substitution.
fichier.get() ne marche pas lorqu'il rencontre un 0x1A?
Non je ne l'ai pas ouvert en mode binaire (je ne vois pas d'ailleur pourquoi je le ferais?)
Il arrive a traduire les premiers caractères jusqu'a ce qu'il rencontre un SUB (c'est ce qu'il affiche dans notepad++ en tout cas...)
Bon je vous donne mon code:
Non je ne l'ai pas ouvert en mode binaire (je ne vois pas d'ailleur pourquoi je le ferais?)
Tu devrais, et ton problème vient à coup sûr de là.
En effet, quand tu l'ouvres en mode texte, les caractères attendus sont des caractères de texte (lettres, chiffres, ponctuation ...) et les autres, non imprimables, comme Substitut par exemple seront interprétés de manière différente suivant les systèmes.
Ici tu fais un cryptage à partir d'octets (où à un moment donné il y a la valeur 1A), il faut l'ouvrir en binaire pour obtenir ce que tu désires.
Non je ne l'ai pas ouvert en mode binaire (je ne vois pas d'ailleur pourquoi je le ferais?)
Il ne faut jamais etre aussi affirmatif !
De plus, je parie que le probleme ne vient pas du 0x1A mais du 0x0A non ?
0x0D et 0x0A te poseront des problemes si tu ouvres ton fihcier en mode texte : ce n'est pas normalisé selon les systemes, et comme dit justement Marcus, ça te crée des caracteres non imprimables.
Codage XOR = codage en mode binaire, ou alors il faut absolument que tu cantonnes tes caracteres dans une limite entre 0x20 et 0x7F. En deça et au dela, tu tombes sur ds caracteres spéciaux (en deça) et non normalisés (au dela).
De plus, je parie que le probleme ne vient pas du 0x1A mais du 0x0A non ?
Non je confirme c'est bien 0x1A (cela affiche SUB a la place du caractère et Substitution est 1A, de plus il affiche 1A avec l'éditeur Hexa).
Sinon j'ai jamais essayé de manipuler des fichiers en binaire, va falloir que je teste! Si j'ai un problème jvous appelle!
EDIT: Parfait cela marche! Merci beaucoup!
[Fstream] Il ne lit pas le fichier jusqu'au bout...
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html