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