Prendre un char
linquisiteur
-
linquisiteur -
linquisiteur -
Bonjour,
je tente de faire un simple programme qui prend un caractère et affiche sa décimale en ascii. Mon exercice me limite en nombre de ligne et donc je ne peux pas vider le buffer,.. je ne trouve pas la solution
Merci. PS j'aurais d'autre question si sa dérange pas
je tente de faire un simple programme qui prend un caractère et affiche sa décimale en ascii. Mon exercice me limite en nombre de ligne et donc je ne peux pas vider le buffer,.. je ne trouve pas la solution
#include <stdio.h> #include <stdlib.h> int main(void){ char c ; int i ; puts( "Entrez un nombre sous forme hexadecimal" ); do{ scanf("%1s", &c); //je n'ai droit que a 1 ligne ici } while( (c>47 && c<58) || (c>64 && c<91) || (c>96 && c<123) ); // 1 ligne ici if (!(c>47 && c<58)) i=c-87; // Sa fonctionne mais sur papier j'ai 2 lignes de code pour le faire. Si vous avez une idée.. printf( "le caractere %c equivaut au nombre %d\n" , c , i ) ; return EXIT_SUCCESS ; }
Merci. PS j'aurais d'autre question si sa dérange pas
A voir également:
- Prendre un char
- Prendre photo avec webcam - Guide
- Prendre une photo avec son mac - Guide
- Prendre un instantané pdf - Guide
- Prendre un instantané, ok mais ou va-t-il? ✓ - Forum PDF
- Comment prendre un double appel sur samsung - Guide
6 réponses
Salut, je ne comprends pas du tout ce que tu fais ici : if (!(c>47 && c<58)) i=c-87; qu'est-ce que 87 ?
De plus pour la compréhension de tous tu peux marquer 'a' pour le caractère ascii de a ext parce qu'on ne connais pas tous les équivalences ACSII :p
De plus pour la compréhension de tous tu peux marquer 'a' pour le caractère ascii de a ext parce qu'on ne connais pas tous les équivalences ACSII :p
Salut, je ne comprends pas du tout ce que tu fais ici : if (!(c>47 && c<58)) i=c-87; qu'est-ce que 87 ? De plus pour la compréhension de tous tu peux marquer 'a' pour le caractère ascii de a ext parce qu'on ne connais pas tous les équivalences ACSII :pJe ne peux pas lire ton message sur le forum (bizarre) alors je le copie ici.
le: if (!(c>47 && c<58)) i=c-87; sert que si je n'ai pas un nombre entre 0 et 9 je retire -87 en décimale (ex 'a' = 97, 97-86 = 10 qui est la valeur hexa de a)
#include <stdio.h> #include <stdlib.h> int main(void){ char c ; int i; puts( "Entrez un nombre sous forme hexadecimal" ); do{ scanf("%c", &c); } while( !(c>='a' && c<='f') && !(c>='A' && c<='F') && !(c>='0' && c<='9') ); if (!(c>='0' && c<='9')) (c>='a' && c<='f')?i=c-('a' - 10):i=c-('A' - 10); else i=c - '0'; printf( "le caractere %c equivaut au nombre %d\n" , c , i ) ; system("pause"); return EXIT_SUCCESS ; }
Voila, le programme marche mais je ne comprends vraiment pas la consigne xD
C'est quoi la consigne exacte ?
Quel est le nombre max de lignes que tu peux ? C'est toi qui as écrit le début du programme ou c'était imposé ?
Quel est le nombre max de lignes que tu peux ? C'est toi qui as écrit le début du programme ou c'était imposé ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sinon, je propose :
#include <stdio.h> #include <ctype.h> int main(void){ int c ; puts( "Entrez un nombre sous forme hexadecimal" ); do{ c=toupper(getchar()); } while(c==EOF || ! ((c>='A' && c<='F') || (c>='0' && c<='9')) ); printf( "le caractere %c equivaut au nombre %d\n" , c , c>'A'?c-'A':c-'0') ; getchar(); return 0; }