Вы не поняли.
Код
#include <stdio.h>
int main()
{
char c;
scanf("%c",&c);
printf("%c\n",c);
scanf(" %c",&c);
printf("%c\n",c);
return 0;
}
input:1<enter>
output:1\n
input:2<enter>
output:2\n
Убираем пробел из формата чтобы было вот так
Код
#include <stdio.h>
int main()
{
char c;
scanf("%c",&c);
printf("%c\n",c);
scanf("%c",&c);
printf("%c\n",c);
return 0;
}
input:1<enter>
output:1\n
больше inputа моего программа не ожидает. дважды проскакивает курсор(как-бы \n откудато) и всё.
Вот что я имел ввиду )))
Попробуйте, скомпильте.
Я думаю тут дело в том, что клавиша enter выдаёт сразу \r\n что-ли.
\r хавает scanf, а \n остаётся в буфере. Если следующий scanf без пробела - то этот \n залетает в char c; и тут же выводится(поэтому курсор проскакивает).
А если в формате есть пробел - этот лишний \n съедает пробел.. Только как такое может быть
Да и enter вроде не должен два chara сразу выдавать... т.е. как-то непонятно до сих пор )
The truth is out there...