Here's a small program:
#include <stdio.h>
int main() {
  char str[21], choice[21]; int size;
  while(1){
    printf("$ ");
    fgets(str, 20, stdin);
    printf("Entered string: %s", str);
    if(str[0] == 'q') {
      printf("You sure? (y/n) ");
      scanf("%s", choice);
      if(choice[0] == 'y' || choice[0] == 'Y')
        break;
    }
  }
  return 0;
}
It reads a string using fgets(). If the string starts with a q, it confirms if the user wants to quit, and exits if the user types y. 
When I run it and type q, this happens:
$ q
Entered string: q
You sure? (y/n) n
$ Entered string: 
$ 
Note the $ Entered string:. Clearly, fgets() got an empty character or something as input, even though I didn't type anything.
What's going on?
 
     
     
     
    