#include <stdio.h>
#include <stdlib.h>
int main(void) {
int a, b, checka, checkb;
printf ("enter a: ");
checka = scanf ("%d", &a);
printf ("enter b: ");
checkb = scanf ("%d", &b);
printf ("checka = %d\n", checka);
printf ("checkb = %d", checkb);
return EXIT_SUCCESS;
}
У меня была эта проблема в более крупной программе, но я написал быстрый тест, чтобы проверить, могу ли я исправить это, чего я не могу.c программа игнорирует все scanfs после ввода неправильного ввода переменной
В принципе, если для scanf введен ничего, кроме целого числа, программа просто мгновенно пропускает и игнорирует все остальные scanf и просто печатает остальную часть программы, которую видит, то есть я не могу выполнять проверки с циклом while, или я просто получаю бесконечный цикл, так как scanf в цикле для исправления переменной просто пропускается.
Очевидно, что если целые числа введены, эта конкретная программа просто вернет 1 для двух последних printfs, что ожидается. Что я делаю неправильно?
Спасибо!
Это является причиной для проверки возвращаемого значения од 'scanf'. Это из-за причины. –
Разве это не то, что я уже делаю? – Lewisss
Нет, я не вижу никаких проверок здесь, вы просто печатаете результаты –