输入字符时跳过一步

  • 本文关键字:一步 字符 c
  • 更新时间 :
  • 英文 :


你好,所以这段代码是用于drowing形状的。问题是,当循环中的训练完成后,在函数showinterface后再次进行训练时,它不等待获得char,然后重复该函数,等待获得char这是代码:

int main ()
{   while (1)
{
fflush(stdin);
ShowInterface () ;
ch = GetNumber () ;
fflush(stdin);
switch (ch)
{
case '1':

printf ( " donner la largeur du carre ");
scanf ("%d" , &langeur_carre) ;

Drawing_shape (langeur_carre , langeur_carre) ;
printf (" n  ----------------------------------------------------- n") ;
fflush(stdin);
break;

case '2':

printf ( " donner la largeur du rectangle  ");
scanf ("%d" , &largeur_rect) ;

printf ( " donner la longeur du rectangle  ");
scanf ("%d" , &langeur_rect) ;
Drawing_shape (largeur_rect ,langeur_rect) ;
printf (" n  ----------------------------------------------------- n") ;
fflush(stdin);
break;
case '3':
exit(0);

}
}

这是输出

----------------------------------------------------- 
Bonjour Bienvenu !!       
1-Dessiner un carré  
2-Dessiner un rectangle 
3-Quitter 

----------------------------------------------------- 
choisir le touche que vous convient : 1
donner la largeur du carre 3
###
# #
###

----------------------------------------------------- 

----------------------------------------------------- 
Bonjour Bienvenu !!       
1-Dessiner un carré  
2-Dessiner un rectangle 
3-Quitter 

----------------------------------------------------- 
choisir le touche que vous convient :  
----------------------------------------------------- 
Bonjour Bienvenu !!       
1-Dessiner un carré  
2-Dessiner un rectangle 
3-Quitter 

----------------------------------------------------- 
choisir le touche que vous convient : 1 

正如你在第二次看到的那样,它没有得到字符,甚至我也没有触摸任何键

这是函数GetNumber:的代码

char GetNumber ()
{       
printf("choisir le touche que vous convient : ");
scanf ("%c" , &ch);
return (ch) ;
}    

我会在stdin上去掉fflush。此外,您没有向我们展示您的GetNumber()代码。但可能是fflush

最新更新