Whitespace vor% c-Angabe im Formatbezeichner der scanf-Funktion in C [duplizieren]

Diese Frage hat hier bereits eine Antwort:

scanf () belässt das neue Zeilenzeichen im Puffer 4 Antworten

Wenn ich im folgenden Programm keine Leerzeichen zwischen% d und% c in die Formatzeichenfolge der Funktion scanf einfüge und zur Laufzeit "4 h" eingebe, lautet die Ausgabe "Integer = 4 and Character" =.

Wie genau nimmt die Variable "c" die Eingabe in diesem Fall auf und welchen Unterschied macht es, wenn zwischen% d und% c ein Leerzeichen angegeben wird?

#include<stdio.h>
main()
{
char c;
int i;
printf("Enter an Integer and a character : \n");
scanf("%d %c",&i,&c);
printf("Integer = %d and Character = %c\n",i,c);
getch();
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage