Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
638 views
in Technique[技术] by (71.8m points)

problem in scanning character in C

#include<stdio.h>
#include<conio.h>
void main()
{
  int a,b,c;
  char ch;
  printf("Enter value of a and b");
  scanf("%d %d",&a,&b);
  printf("Enter choice of operation");
  scanf("%c",&ch);// **Here this statment is not able to receive my input***
  switch(ch)
  {
     case '+':
            c=a+b;
            break;
     case '-':
            c=a-b;
            break;

     default:
             printf("invalid");
             break;
  }
getch();
}

Error:

scanf("%c",&ch); // Here this statment is not able to receive my input Unable to scan input given by user??????

thanks..

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Unlike most conversions, %c does not skip whitespace before converting a character. After the user enters the two numbers, a carriage return/new-line is left in the input buffer waiting to be read -- so that's what the %c reads.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...