scanf («% [^ \ n] s», a) vs gets (a)

Мне сказали, что scanf не следует использовать, когда пользователь вводит строку. Вместо этого воспользуйтесь get () большинством экспертов, а также пользователями StackOverflow. Я никогда не спрашивал в StackOverflow, почему не следует использовать scanf вместо get для строк.Это не настоящий вопрос, но мы очень благодарны за ответ на этот вопрос.

Теперь перейдем к собственному вопросу. Я наткнулся на этот тип кода -

scanf("%[^\n]s",a); 

Он читает строку до тех пор, пока пользователь не введет новый символ строки, рассматривая пробелы также как строку.

Есть ли какие-нибудь проблемы, если я использую

scanf("%[^\n]s",a);

вместо get?

Get больше оптимизирована, чем функция scanf, как это звучит, get предназначена исключительно для обработки строк. Пожалуйста, дайте мне знать об этом.

Обновление

Эта ссылка помогла мне лучше понять это.

9
задан Community 23 May 2017 в 11:53
поделиться