title: Scanf skips every other while loop in C
body: <p>I'm trying to develop a simple text-based hangman game, and the main game loop starts with a prompt to enter a guess at each letter, then goes on to check if the letter is in the word and takes a life off if it isn't. However, when I run the game the prompt comes up twice each time, and the program doesn't wait for the user's input. It also takes off a life (one life if it was the right input, two if it wasn't), so whatever it's taking in isn't the same as the previous input. Here's my game loop, simplified a bit:</p>
  
  <pre><code>while (!finished)
  {
      printf("Guess the word '%s'\n",covered);
  
      scanf("%c", &amp;currentGuess);
  
      i=0;
      while (i&lt;=wordLength)
      {
          if (i == wordLength)
          {
              --numLives;
              printf("Number of lives: %i\n", numLives);
              break;
          } else if (currentGuess == secretWord[i]) {
              covered[i] = secretWord[i];
              secretWord[i] = '*';
              break;
          }
          ++i;
      }
  
      j=0;
      while (j&lt;=wordLength)
      {
          if (j == (wordLength)) {
              finished = 1;
              printf("Congratulations! You guessed the word!\n");
              break;
          } else {
              if (covered[j] == '-') {
                  break;
              }
          }
          ++j;
  
          if (numLives == 0) {
              finished = 1;
          }
  
      }
  }
  </code></pre>
  
  <p>I assume the problem is scanf thinking it's taken something in when it hasn't, but I have no idea why. Does anyone have any idea? I'm using gcc 4.0.1 on Mac OS X 10.5.</p>