Когда вы печатаете, скажем, e , вы набираете e и затем нажимаете клавишу ВВОД. Теперь в буфере ввода есть 2 символа. scanf("%d")
читает e , но символ новой строки все еще находится во входном буфере.
Более простым решением вашей непосредственной проблемы является добавление getchar()
после каждого scanf("%d")
. Этот код будет работать.
#include <stdio.h>
#include <string.h>
int main(void)
{
int minBet;
printf("Enter integer \n");
while(scanf("%d",&minBet)!=1)
{
getchar();
printf("Must be an integer value greater than 0\n");
}
}
Кроме того, ваш код printf("Enter integer"\n);
неверен. Должен быть
printf("Enter integer \n");