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

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

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

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

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

Есть ли проблема, если я использую

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

а не получает?

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

Обновить

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

Ответы на вопрос(2)

Ваш ответ на вопрос