I've encountered a problem when validating a single-char scanf input in C and I cannot find an existing solution that works...
The scenario is: a method is taking a single letter 'char' type input and then validating this input, if the criteria is not met, then pops an error message and re-enter, otherwise return this character value.
my code is:
char GetStuff(void)
{
    char c;
    scanf("%c", &c);
    while(c != 'A' || c != 'P')
    {
          printf("invalid input, enter again (A for AM or P for PM): ");
          scanf ("%c", &dtChar);
    }
    return c;
}
however, i got the infinite loop of error message no matter what input I type in. I read some other posts and guess it's the problem that %c specifier does no automatically get rid of the newline when I hit enter, and so far I have tried:
- putting a white space before/after %c like: - scanf(" %c", &c);
- write a separate method or include in this - GetStuffmethod to clean the newline like:- void cleanBuffer(){ int n; while((n = getchar()) != EOF && n != '\n' ); }
Can anyone help me with this problem please? Thank you in advance.
 
     
     
     
     
     
     
    