我已经尝试过以下代码,在输入字符之前需要%d.这是代码中的后切换循环.
#include<stdio.h>
#include<conio.h>
void sum();
void mul();
void main()
{
char ch;
int c;
clrscr();
do
{
printf("\n\n Enetr choice ");
printf("\n\n\t 1: SUM \n\n\t 2: MUL");
scanf("\n\n\t %d",&c);
switch(c)
{
case 1:
sum();
break;
case 2:
mul();
break;
default:
printf("\n\n hhhh..... ");
}
printf("\n\n Want u calcualte again");
//scanf("%d");
scanf("%c",&ch);
printf("\n ch value is %c",ch);
}while(ch=='y'|| ch=='Y');
getch();
}
void sum()
{
int s;
s=10+50;
printf(" SUM: %d",s);
}
void mul()
{
int s;
s=10*50;
printf(" SUM: %d",s);
}
Run Code Online (Sandbox Code Playgroud)
在这个代码中,我在切换后尝试输入字符,但是在输入字符时没有需要注释的scanf语句.没有那个scanf语句编译器不接受字符输入.所以请给我解决方案.
这是因为你必须从以前的输入"吃掉"换行符
你不必使用%d.
而是使用:
while((c = getchar()) != '\n' && c != EOF) ;
代替
//scanf("%d");
丢弃换行符.