Я очень часто видел, как люди отговаривали других от использования scanf и говорили, что есть лучшие альтернативы. Тем не менее, все, что я в итоге вижу, это "не использовать scanf" или "здесь правильная строка формата", и никогда не упоминаются примеры "лучших альтернатив".
Например, давайте возьмем этот фрагмент кода:
scanf("%c", &c);
Здесь читаются пробелы, которые остались во входном потоке после последнего преобразования. Обычно предлагаемое решение этого заключается в использовании:
scanf(" %c", &c);
или не использовать scanf.
Поскольку scanf является плохим, каковы некоторые опции ANSI C для преобразования входных форматов, которые обычно может обрабатывать scanf (такие как целые числа, числа с плавающей точкой и строки) без использования scanf?