C++ problem char
Julien
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un probleme avec les char, j'essai de convertir un char en int et de le comparer avec un autre int, mais je n'ai jamais d'égalité.
Alors j'ai assayé d'afficher le char :
char test = 'h';
Console::WriteLine("Mon char : "+ test );
Mais dans la console ca m'affiche :
Mon char : 104
Je débute en C++, et je ne vois vraiment pas d'où vient le problème
Je travaille sous Visual Studio 2010.
Merci d'avance pour votre aide.
J'ai un probleme avec les char, j'essai de convertir un char en int et de le comparer avec un autre int, mais je n'ai jamais d'égalité.
Alors j'ai assayé d'afficher le char :
char test = 'h';
Console::WriteLine("Mon char : "+ test );
Mais dans la console ca m'affiche :
Mon char : 104
Je débute en C++, et je ne vois vraiment pas d'où vient le problème
Je travaille sous Visual Studio 2010.
Merci d'avance pour votre aide.
5 réponses
-
Bonjour,
char test='h';
Avec cette instruction, test représente le code ascii de 'h' (104). Donc, c'est comme si tu faisais char test=104.
La concaténation de la chaîne "mon char : " avec test donne donne "mon char : 104"; rien d'anormal.
C'est quoi le problème ? -
Nous non plus nous ne pouvons pas comprendre.
montre nous ton problème. Là tu montre juste que tu affiche "104", ce qui est surement normal. -
Oui je ne vois pas où est le problème car h vaut bien 104 (voir table ASCII : http://www.asciitable.com/index/asciifull.gif
-
Pour l'affichage moi j'utilise cout.
#include <iostream> int main() { char test = 'h'; std::cout << test << std::endl; return (0); }
#console: ./tonprog
h
#console:
tu aura bien un h qui sera affiché (suivit d'un '\n' du au std::endl) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci pour vos réponses, je ne savais pas que les "char" renvoyaient naturellement la valeur ASCII en C++.
Je trouvais ca étrange, mais puisque c'est comme ca j'ai cherché une solution pour garder le caractère 'h' et j'ai trouvé ca :
stringstream ss;
string s
char test = 'h';
ss << test;
ss >> s;
Console::WriteLine("Mon char : "+ s );
Et la ca m'affiche bien :
Mon char : h
Dans la console-
Etrange ?
Il n'y a rien d'étrange, ni de magique dedans. char représente un nombre de 0 à 255 (pour faire simple). Il ne faut pas confondre 'h' (caractère représentant le code ascii 104) avec "h".
Si tu fais string test = "h". Tu pourras faire "Mon char : " + test; sans problème.
C'est d'ailleurs ce que tu fais en passant par stringstream. -
-
-
-
-