C++ problem char
Julien
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 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.
A voir également:
- C++ problem char
- Coco char - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- If char ✓ - Forum Programmation
- Convertir char en int c ✓ - Forum C
- Char(10) excel francais ✓ - Forum Excel
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 ?
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.
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.
#console: ./tonprog
h
#console:
tu aura bien un h qui sera affiché (suivit d'un '\n' du au std::endl)
#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
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.
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.