Differenz zwischen scanf ("% c" & c) und scanf ("% c" & c) [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Warum macht ein Leerzeichen in meiner scanf-Anweisung einen Unterschied? [Duplikat 3 answersBetrachten Sie das folgende C-Code-Snippet:
#include <stdio.h>
int main()
{
int a;
char c;
scanf("%d",&a);
scanf("%c",&c);
printf("int=%d\n",a);
printf("char=%c\n",c);
}
Ich kann nur die Ganzzahl und nicht das Zeichen eingeben. Die Ausgabe ist einfach der Ganzzahlwert, und für die zweite printf-Anweisung wird kein Wert ausgegeben.
Wenn ich jedoch ein Leerzeichen vor dem Formatbezeichner verwende:
scanf(" %c",&c);
Es funktioniert wie erwartet. Warum ist das so?
Jemand hat mir gesagt, dass es etwas mit dem Löschen des Eingabepuffers zu tun hat. Könnte jemand etwas Licht auf dasselbe werfen?