Я видел здесь и в других местах много вопросов о том, что для получения входных данных используйте что-то вроде этого:
...
printf("What's your name? ");
scanf("%s",name);
...
Это очень напоминает старые ОСНОВНЫЕ дни (INPUT
для тех, кто его помнит).
Большинство этих вопросов, если не все, относятся к людям, которые только изучают C, и являются домашними заданиями или примером, взятым из их книги.
Я четко помню, что когда я изучал C, мне сказали, что этот тип вопросов / ответов не является хорошей практикой для получения пользовательского ввода. «Правильный путь» заключался либо в получении параметров в командной строке (argv[...]
), либо в чтении из файла данных, который нужно проанализировать с помощью fgets()
. Когда удобство использования было обязательным, termio
и друзья должны были использоваться.
Теперь мне интересно, изменилось ли что-нибудь за последние годы. Нужно ли людям структурировать взаимодействие с пользователем как заданный вопрос / ответ сейчас?
Я вижу только недостатки в использовании подхода printf () / scanf (), основным из которых является разнообразие терминалов (^ H кто-нибудь?), Которые могут затруднить пользователю исправление ошибок.
Может ли кто-нибудь указать мне на конкретные преимущества этого подхода?