Scanf не сканирует символ% c, но пропускает утверждение, почему это так?
Я написал программу, используя оператор switch case, и попросил ввести символ для ввода, но он не запрашивает символ в окне консоли, а полностью его пропускает
int main()
{
float a, b, ans;
char opr;
printf("\nGIVE THE VALUES OF THE TWO NUMBERS\n");
scanf(" %f %f",&a,&b);
printf("\nGIVE THE REQUIRED OPERATOR\n");
//no display(echo) on the screen
//opr = getch();
//displays on the screen
//opr = getche();
scanf("%c",&opr);
switch(opr)
{
case '+' :
ans = a+b;
printf("%f", ans);
break;
case '-' :
ans = a-b;
printf("%f", ans);
break;
case '*' :
ans = a*b;
printf("%f", ans);
break;
case '/' :
ans = a/b;
printf("%f", ans);
break;
case '%' :
ans = (int)a % (int)b;
printf("%f", ans);
break;
default :
printf("\nGIVE A VALID OPRATOR\n");
}
system("pause");
return 0;
но когда я ставлю пробел перед%c
во-вторыхscanf
это работает, кто-то говорил что-то про пробелы, которые я нашел сбивающим с толку
Сказал второйscanf
принимает значение\n
как персонаж, и если я поставлю пробел перед%c
во-вторыхscanf
разве это не персонаж и не занимает ли он пространство как персонаж?
Но в этой программе он не принимает\n
как персонаж
int main()
{
char a;
printf("\ngive a char\n");
scanf("%c",&a);
printf("%c",a);
return 0;
}
Это действительно сбивает с толку любой может помочь мне, я хочу узнать, что не так.