У меня возник вопрос относительно использования scanf с недопустимым возвратом. Вот фрагмент кода, я тестирование:Использование while (scanf (...) == 0) правильно
printf("Please enter a number\n");
while (scanf("%d",&number)==0)
{
printf("Try again.\n");
scanf("%d",&number);
}
Мои рассуждения показывают, что если используется неверный тип, мой второй зсапЕ должен спросить снова и протестировать новое введенное значение. Однако это не так, и сообщение «Повторить попытку» никогда не прекращает печать, поэтому я должен завершить его вручную. Я не знаю, почему это происходит. Я не хочу использовать scanf перед циклом while, если это возможно, хотя я знаю, что это возможное обходное решение. Буду признателен за любую помощь по этому вопросу. Благодарю.
Наиболее очевидная проблема: ваш цикл вызывает 'scanf' * дважды * каждый раз, когда он проверяет результат. Это не может быть правильным. –
Yo не улавливает возврат in-loop scanf! и входной поток все еще не взят, потому что вы получаете бесконечный цикл. я [ответил] (http://stackoverflow.com/questions/15447810/c-project-scanf/15448405#15448405) вопрос simlar ранее сегодня прихватил на нем – A4L
Хорошо, спасибо за ссылку. Я посмотрю на это. – russ0