J'ai accepté un caractère comme une entrée de l'utilisateur. Je veux imprimer la valeur ASCII de ce caractère en tant que sortie. Comment puis-je faire cela sans utiliser de fonction prédéfinie (s'il existe) pour la même chose? P>
6 Réponses :
au lieu de printf ("% c", my_char) code>, utilisez
% d code> pour imprimer la valeur numérique (ASCII). P>
@Karl: la rumeur a pour que tout le monde avec un repère de représentant supérieur à 10k ait été enlevé et remplacé par un IA. Sauf Jon Skeet, qui était un AI tout le monde.
Merci pour la solution. J'ai essayé d'utiliser cette méthode. Cela ne me donne aucune erreur, mais il affiche la valeur 10 pour tout caractère entré. Donc, j'essaie de comprendre le problème.
rapide mais faux? À ma compréhension, la valeur ASCII d'un personnage est une entité non signée. Donc, vous auriez été meilleur, je pense. Je préfère donc la réponse de Matt, 4 min de plus, mais bien investi ;-)
Je suppose que la réponse de Mark est la meilleure solution Bcoz 'Quelques programmeurs supplémentaires m'ont donné la même solution, mais je pense qu'il y a un problème sur mon côté CoZ' de quel problème se produit.
@user: S'il s'agit d'impression de la même valeur à chaque fois, alors vous êtes passer dans i> la même valeur à chaque fois. Vérifiez que vos arguments à PrintF code> sont ce que vous vouliez réellement passer.
@Jens: La norme Absolument ne signifie pas b> Spécifier si un Char code> est signé ou non signé
.
@Mark: J'ai essayé de donner "A" ainsi que "A", mais il donne la même valeur ASCII 10 pour les deux, ce qui est en fait faux pour les deux. Quelle pourrait être l'erreur possible? Voici le code que je suis exécutant: #include
Alors que Char code> pourrait être signé ou non signé, il semble que je me souvienne de la norme nécessitant que tous les caractères de base nécessaires à l'ensemble de caractères de traduction / exécution ont des valeurs positives ... Peut-on confirmer?
@ user417316: Je pense que vous lisez la nouvelle ligne à partir de la fin d'une ligne ...
@Mark: La question concerne les valeurs ASCII non sur les valeurs numériques d'un Char code>. (Je sais bien que
Char code> peut être signé ou non signé.) À ma compréhension, une valeur ASCII est toujours positive. Ainsi, j'accepterais un% U comme solution. Mais si même plus de nitpicking vous auriez dû fournir une fonction de traduction à partir du jeu de caractères d'exécution sur ASCII pour avoir vraiment une solution complètement correcte.
@Jens: Étant donné que les valeurs ASCII se trouvent strictement dans la plage de 0 à 127, (% d ", c) code> et
("% u ", (non signé) c) code> Imprimer uniquement des valeurs positives pour les caractères ASCII. Les caractères ayant des valeurs négatives dans un
signé code> ne sont pas dans l'ensemble ASCII.
@CAF: Bien sûr, si vous supposez que le charert en fait est i> ascii. La spécification C n'impose pas cela, alors comme je l'ai dit, la réponse donnée ici est fausse. Je voulais seulement faire valoir qu'un%, vous vous rapprochez de ce que j'accepterais comme une réponse correcte que% d. BTW, je ne connais pas de réponse rapide à la vraie question moi-même, c'est-à-dire de générer la valeur ASCII d'un caractère, quel est le jeu de caractères d'exécution.
considère également C'est ce qui est imprimé: p> merci CAF pour souligner que les types peuvent être promus de manière inattendue (qu'ils sont évidemment pour la printf ("% hhu", c); code> pour spécifier avec précision la conversion en caractères et impression non signé de sa valeur décimale.
update0 h2> H2> En fait testé cela sur mon compilateur C pour voir ce qui se passe, les résultats sont intéressants: p>
% d code> et
% u code> cas). De plus, il apparaît que le boîtier
% HHU code> est en train de renvoyer à un
sans signé code>, de couper probablement les extensions de signe. P> p>
Vous devez lancer C code> à
(non signé) code>, sinon il peut être favorisé à
int code> (qui ne correspond pas
% u code>).
@CAF: Je ne suis pas suivi, n'est-ce pas à voter pendant la conversion?
C'est une technicité, mais le spécificateur % u code> (même lorsqu'il est utilisé avec
HH code>) nécessite un (Favorisé)
non signé INT code> argument, sinon le comportement est explicitement indéfini.
char code> peut être favorisé à
int code> plutôt que
non signé INT code> (puisqu'il peut être signé ou non sonné), donc une distribution explicite sur
Unfsigned Char Code> est nécessaire pour s'assurer qu'il est promu
Unsigné Int code>.
Cette démo montre l'idée de base:
Merci pour le code!
Ceci générera une liste de tous les caractères ASCII et d'imprimer sa valeur numérique.
Le code printf ("% c =% d \ n", n, n); code> affiche le caractère et son ASCII. P>
#include "stdio.h" #include "conio.h" //this R.M.VIVEK coding for no.of ascii values display and particular are print void main() { int rmv,vivek; clrscr(); for(rmv=0;rmv<=256;rmv++) { if(printf("%d = %c",rmv,rmv)) } printf("Do you like particular ascii value\n enter the 0 to 256 number"); scanf("%d",&vivek); printf("\nthe rm vivek ascii value is=%d",vivek); getch(); }
conio.h code> est non-sport et ne vaut pas la peine d'être utilisé ici,
Main () code> retourne
int code>, et tu ne vas rien obtenir de bon avis Pour imprimer un
Char code> dans la valeur
int code>
256 code>.