-1
Попытка проверить целое число, но когда введен неправильный тип значения, появляется бесконечный цикл первого printf.C Пытается проверить целое число
int main(int argc, char *argv[]) {
int input;
do{
int starCount;
printf("Please enter a number:");
scanf("%d",input);
do{
scanf("%d",&input);
}while(isdigit(input));
for(starCount=0; starCount<input; starCount++){
printf("*");
}
printf("\n");
}while(input>0);
return 0;
}
Я предлагаю прочитать некоторые [документы для функции scanf] (http://www.cplusplus.com/reference/cstdio/scanf/), а затем мысленно имитировать выполнение вашего кода, чтобы понять, почему он не работает. – Adrian
1) Почему существует вызов функции 'scanf()' перед циклом? 2) Вы должны проверить значение, возвращаемое вызовом 'scanf()'. –
У вас есть два вызова 'scanf', это подозрительно. То, что первый из них не передает свою переменную по адресу, вызывает * неопределенное поведение *. Я начну с них. – WhozCraig