Getch ou getchar() ? [niveau debutant]

cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012 - 6 févr. 2003 à 18:34
crocop95 Messages postés 1 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 6 novembre 2008 - 6 nov. 2008 à 18:16
:P

//---------------------------------------------------------------------------

#include <vcl.h>
#include <conio.h> // getch()
#include // cout
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
void functionA(int a,int b);
void main(void)
{
int clavier;
int clavier2;
cout<<"Saisissez le nombre de depart : ";
clavier=getchar();//on stock dans la variable clavier le nombre de debut
cout<<"Saisissez maintenant le nombre de fin : ";
clavier2=getchar(); //on stock dans la variable clavier2 le nombre de fin
functionA(clavier,clavier2);
while (!kbhit()); //attendre la saisie de l'utilisateur avant de quitter
}
void functionA(int a,int b)
{
while (a<b) { //tant que a est inférieur à b
a++; //on incremente a
printf("%c\n",a);
}
}
//---------------------------------------------------------------------------

le probleme c'est pas la compilation car le programme marche parfaitement. le bleme c'est que une foit qu'il ma demander le nombre de depart c'est bon je rentre 66 par exemple apres il me demande le nombre de fin et la paf! je rentre 1 seul chiffre et le prog se ferme auto. Se qui est byzare c que quand je met getch(); getch(); a la place de getchar() sa marche parfais met sa attend pas que je finisse mon nombre se qui fais qu'en premier nombre je peux mettre que 123456789 et en 2em nombre 123456789 mais au moins si je met 1 en premier nombre puis 9 en 2em nombre sa marque bien 123456789 alors ya 2 possibilité sois on peut faire en sorte que getch() attend que je termie mon nombre au lieu de n'accepter que 1 seul nombre ou sois on fais marcher ce getchar qui lui attend bien la fin de ma saisie mais marche pas ... MERCCI d'avance :) :clown)

3 réponses

cs_ToM50 Messages postés 1 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 7 février 2003
7 févr. 2003 à 00:14
Salut,

Voila le code corrigé et compilé sous c++ builder sans problemes. Je serais toi je mettrait en place un systeme qui detecte si lutilisateur a saisi un nombre de fin plus petit que le nombre du debut :P

//---------------------------------------------------------------------------

#include <conio.h> // getch()
#include // cout
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
void functionA(int a,int b);

void main(void)
{
int clavier;
int clavier2;
cout<<"Saisissez le nombre de depart : ";
cin>>clavier;
cout<<"Saisissez maintenant le nombre de fin : ";
cin>>clavier2;
functionA(clavier,clavier2);
while (!kbhit()); //attendre la saisie de l'utilisateur avant de quitter
}

void functionA(int a,int b)
{
while (a<b) { //tant que a est inférieur à b
a++; //on incremente a
printf("%d\r\n",a);
}
}
//---------------------------------------------------------------------------
0
MichelAliasMiB Messages postés 19 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 24 février 2003
11 févr. 2003 à 19:51
Bonjour,

Info complémentaires ...

Je débute aussi en C et j'avais un exercice à faire
et dans cet exercice, je devais capturer les touches
au clavier et contrôler les entrées de façon à ne
faire apparaître à l'écran que les caractères valide,
soit les lettres majuscules dans ce cas-ci.

Par conséquent la fonction getch() capture le clavier
avant même que la touche ne soit affiché, c'est
pourquoi ton programme n'attends pas la fin du
nombre quand tu utilise getch().

Par opposition, getchar() attends le caractère de
fin de ligne avant de capturer la saisie au clavier.

Donc getch() capture un caractère à la fois ...
et getchar() capture une série de touches incluant
le caractère de fin de ligne EOL ou <enter>.

MiB
0
crocop95 Messages postés 1 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 6 novembre 2008
6 nov. 2008 à 18:16
Jme demande à quoi ta photo sert?






Uzumaki Naruto
0
Rejoignez-nous