Convertir un int en caractère ASCII
J'ai
int i = 6;
et je veux
char c = '6'
par la conversion. De toute manière simple à suggérer?
EDIT:
aussi j'ai besoin de générer un nombre aléatoire, et de le convertir en un char, puis ajouter un".txt " et y accéder en un ifstream.
- char *c = itoa(i, 10);
Vous devez vous connecter pour publier un commentaire.
Simple:
Moyen plus sûr:
Façon générique:
Façon pratique:
C++ façon: (prises de Dave18 réponse)
Patron façon:
Studboss façon:
De Joe moyen:
De la Nasa façon:
De l'étranger, du type: "9'
La voie de dieu:
Peter Pan manière:
Santa Claus chemin:
La gravité de la sorte:
'6' (Jersey) Mikes'™ façon:
ALORS moyen:
Ma façon:
Commentaire: j'ai ajouté de façon Pratique et C++ chemin (pour avoir une collection complète) et je suis sauver ce qu'un wiki.
Edit: satisfait?
Cela ne fonctionne que pour int-chiffres de 0 à 9, mais votre question semble suggérer que peut être suffisant.
Il fonctionne en ajoutant la valeur ASCII de char
'0'
à l'entier chiffres.Par exemple:
Modifier
Il est difficile de savoir ce que tu veux dire, "le travail pour les alphabets"?
Si vous voulez la 5ème lettre de l'alphabet:
Noter qu'en C/Ascii, Un est considéré comme le 0e lettre de l'alphabet, je fais moins de 1 pour compenser l'normalement compris le sens de la 5ème lettre.
Ajuster en fonction de votre situation spécifique.
(et test-test-test! tout code que vous écrivez)
char c = 'A'+i
.Juste pour info, si vous voulez plus que de simples chiffres que vous pouvez utiliser sprintf:
Le premier chiffre est dans un char à txt[0], et ainsi de suite.
(C'est le C de l'approche, de ne pas le C++ approche. Le C++ moyen serait d'utiliser stringstreams.)
snprintf
sursprintf
(envisager un hypothétique système de 128 bits entiers ou quoi que ce soit). +1 de toute façon pour une approche qui ne cassera pas dans les jeux de caractères où les chiffres ne sont pas consécutifs.Ma façon de faire ce travail, c'est :
Et j'écris ces fonctions pour les conversions
itoa()
http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/
itoa
(non standard MS) et pour la liaison à peut-être la pire site pour C et C++ [sig]de l'information.C'est comment j'ai converti un nombre à un code ASCII. 0 à 9 en code hexadécimal est 0x30-0x39. 6 serait 0x36.
cela vous donnera la valeur ASCII pour 6. Vous faites la même chose pour les 0 - 9
pour convertir ASCII à une valeur numérique, je suis venu avec ce code.
"J'ai int i = 6; et je veux char c = '6' par la conversion. De toute manière simple à suggérer?"
Il y a seulement 10 numéros. Afin d'écrire une fonction qui prend un entier de 0 à 9 et retourne le code ascii. Il suffit de le rechercher dans une table ascii et écrire une fonction avec ifs ou un select case.
Autre façon, Mais la non-standard.
Ou à l'Aide de c++ standard stringstream
'oss'
🙂Je suppose que
pourrait faire le travail, c'est une fonction surchargée, je pourrais être tout types numériques
- Je vérifier mon codage et de son bon travail.laissez-moi savoir si son utile.merci.