Caractère '-52'??? [Résolu]

Signaler
Messages postés
5
Date d'inscription
mercredi 9 mars 2005
Statut
Membre
Dernière intervention
10 juillet 2008
-
Messages postés
5
Date d'inscription
mercredi 9 mars 2005
Statut
Membre
Dernière intervention
10 juillet 2008
-
Bonjour à tous.

Je viens vous voir ajourd'hui car je travail sur un projet que j'ai transféré depuis Dev-C++ vers VS C++ 2005.
Le changement de compilateur s'est bien passé mais je rencontre maintenant une erreur bizarre.

Dans mon programme je lis un fichier caractère par caractère (bit par bit plutot).

Le fopen se fait correctement (en mode "rb"), la lecture aussi mais je rencontre un phénomène étrange: le premier bit de chaque fichier texte que je tente d'ouvrir (ceux-ci étant encodés en 8bits) a la valeur '-52'.
Ouais, bizarre un caractère avec une valeur négative me direz-vous... Pourtant le "cout << char( c );" est formel, c'est bien '-52' la valeur du caractère.
Même un fichier vide me renvoit ce caractère négatif.

J'ai ouvert les fichiers textes avec un éditeur hexadécimal mais celui-ci ne détecte aucun caractère bizarre.

Merci de m'éclairer sur cette bizarrerie VS C++...

Fabien

2 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
"Dans mon programme je lis un fichier caractère par caractère (bit par bit plutot)."

Je te rassure, une lecture bit par bit est impossible. C'est bien octet par octet.

"le premier bit de chaque fichier texte que je tente d'ouvrir (ceux-ci étant encodés en 8bits) a la valeur '-52'."

Tien. Normalement un bit ne peut prendre que 1 ou 0. Tu veux donc parler du premier caractère (du premier octet) j'imagine.

Ceci dit, je serais curieux de voir ton code, car ce genre de problème me fait penser à une variable non initialisée.

C++ (@++)<!--
Messages postés
5
Date d'inscription
mercredi 9 mars 2005
Statut
Membre
Dernière intervention
10 juillet 2008

Oups désolé, je ne parlais pas de bit mais bien de byte (et donc d'octet)... Petite confusion de ma part, il était tard. ^^

Et en effet tu a raison le problème venait bien d'une variable non initialisée. Une coquine bien cachée mais surtout qui ne créer aucun bug en compilant avec Dev-C++.

C'est quand même étrange cette différence entre Dev-C++ et VS 2005...

En tout cas merci de m'avoir orienté vers la solution d'initialisation de variable.

@+