Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1771 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Récupérer un caractére

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer un caractére

n°1468715
Shadounet
Posté le 01-11-2006 à 16:06:44  profilanswer
 

Bonjour à tous,
voilà j'aimerais savoir comment faire pour récupérer un caractére en C. Et cela sans que l'utilisateur ne tape sur ENTREE.
 
Je sais qu'avec getch() c'est possible mais le probléme est que getch retourne un entier  :non: , alors que j'aimerais justement qu'il me retourne un char  :)  
 
Merci d'avance pour votre réponse.
 

mood
Publicité
Posté le 01-11-2006 à 16:06:44  profilanswer
 

n°1468718
Elmoricq
Modérateur
Posté le 01-11-2006 à 16:10:43  profilanswer
 

Le type naturel pour un caractère en C, c'est int. Ca ne devrait pas poser de problème.
 
getch() répond à ton besoin mais n'est pas portable, en standard il n'y a rien qui puisse faire ça sinon.

Message cité 1 fois
Message édité par Elmoricq le 01-11-2006 à 16:10:54
n°1468746
jesus_chri​st
votre nouveau dieu
Posté le 01-11-2006 à 17:42:08  profilanswer
 

Elmoricq a écrit :

Le type naturel pour un caractère en C, c'est int.


 
+1
c'est contre-intuitif mais c'est comme ça : 'A' c'est un int
en C++ ça a été corrigé, les caractères sont des char.

n°1468789
Shadounet
Posté le 01-11-2006 à 19:02:02  profilanswer
 

merci pour vos réponses. Si getch retourne un int, comment faire pour afficher la lettre que l'utilisateur viens de taper. par exemple :
 
int c;
c=getch();
printf("%d",c);
 
comment faire pour que printf affiche le caractére tapé ? :)
merci :)

n°1468791
jesus_chri​st
votre nouveau dieu
Posté le 01-11-2006 à 19:03:25  profilanswer
 

int c;  
c=getch();  
printf("%c",(char)c);  
 
même si sans le cast ça marche qd même, c'est + explicite de le mettre

n°1468797
Emmanuel D​elahaye
C is a sharp tool
Posté le 01-11-2006 à 19:15:23  profilanswer
 

jesus_christ a écrit :

Code :
  1. int c;
  2. c=getch();
  3. printf("%c",(char)c);


 
même si sans le cast ça marche qd même, c'est + explicite de le mettre


Non seulement c'est inutile, mais c'est une c*nnerie, car "%c" attend un int. Heureusement, avec une fonction variadic, tout char est promu en int...

Code :
  1. int c;
  2.    c = getch ();
  3.    putch (c);

:)


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1468831
jesus_chri​st
votre nouveau dieu
Posté le 01-11-2006 à 20:17:04  profilanswer
 

%c attend un int mais ayant une valeur dans l'intervalle de char. Et les promotions se font toujours vers la taille standard de l'architecture au minimum, généralement 32-bits. Tous les %-machin attendent un élément sur la pile, toujours de la même taille (sauf éventuellement les double ou les struct).
 
char c;
f(c);
c'est bien 32 bits qui seront empilés pour l'appel, même sans variadic. Les bits de poids forts seront juste ignorés.

n°1468838
matafan
Posté le 01-11-2006 à 20:38:41  profilanswer
 

jesus_christ a écrit :

Et les promotions se font toujours vers la taille standard de l'architecture au minimum, généralement 32-bits.


Absolument pas.

n°1468843
jesus_chri​st
votre nouveau dieu
Posté le 01-11-2006 à 20:59:00  profilanswer
 

l'empilement des paramètres se font par multiples de taille d'un GPR. Emplier un char (1 octet) empilera 4 octets, pas 1 seul. Et ce n'est pas vraiment une promotion, c'est 1 octet + 3 octets inutilisés.
 
effectivement ce ne sont pas toutes les promotions, caster de char vers short ça restera de 8 à 16 bits, mais là je parle de l'empilement, et sur archi x86.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Récupérer un caractére

 

Sujets relatifs
Récupérer le dernier caractère d'une ligneRécupérer une chaîne de caractère dans un fichier
Récuperer la valeur int d'un caractère.recuperer chaine de caractère
Récupérer une chaine de caractère dans l'URLrécupérer une chaines de caractère d'un fichier texte
Recuperer une chaine de caractere venant d'un script PHPRécupérer un mot d'1 ligne en ayant la position de son 1er caractère
[C]Comment recuperer un caractere des qu'il est saisi au clavier?Recuperer une chaine de caractere d'une iframe
Plus de sujets relatifs à : Récupérer un caractére


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR