[C] Verständnisproblem Formatzeichen

11/25/2012 11:56 RappelzFrEaK#1
Hallo elitepvpers Community,

ich habe aktuell ein Verstädnnisproblem bei einem Code-Beispiel ich hoffe ihr könnt mir dabei weiterhelfen.

Hier der Code:

Code:
#include <stdio.h>

int main(void) {
   char response;

   printf("Denk Dir eine Nummer zwischen 1 und 100 aus.\n");
   printf("Das errate ich in 7 oder weniger Versuchen \n\n");
   do {
      int lo = 1, hi = 100;
      int guess;
      while (lo <= hi) {
         guess = (lo + hi) / 2;
         printf("Ist es %d ",guess);
         printf(" ((h)oeher/(n)iedriger/(j)a): ");
         fflush(stdout);
         scanf("%c%*c",&response);

         if (response == 'h')
            lo = guess + 1;
         else if (response == 'n')
            hi = guess - 1;
         else if (response != 'j')
            printf("Erraten ... :-)");
         else
            break;
      }
     
      if (lo > hi)
         printf("Du schummelst!\n");
      else
         printf("Deine Nummer lautet: %d\n",guess);
      printf("Noch ein Spiel (j)a/nein : ");
      fflush(stdout);
      scanf("%c%*c",&response);
   } while( response == 'j' );
   return 0;
}
Mein Problem:
Warum wird hier scanf("%c%*c",&response); verwendet?
Warum kann ich an dieser Stelle kein normales Formatzeichen für einen Char verwenden (also %c)?
Wieso wird hier %c%*c benutzt?
Was genau steckt dahinter?
In welchen Fällen findet das Anwendung?

MfG RappelzFrEaK
11/25/2012 12:58 Rullx3#2
Habe den code gerade mit %c laufen lassen, kommt auf dasselbe hinaus :-)
11/25/2012 14:25 RappelzFrEaK#3
Bei mir nicht...lasse ich das Programm mit %c%*c laufen funktioniert alles, schreibe ich an den beiden stellen nur %c rein funktioniert es nicht mehr wie es soll.
Hab es mit Bloodshed Dev-C++ und Visual Studio ausprobiert beides mal wenn ich %c benutze und ich gebe zum Beispiel h ein gibt er mir aus Erraten fragt danach aber weiter.