Задать вопрос
@GJggg

Обязательно ли использовать scanf_s вместо scanf?

В книгах примеры программ написаны с помощью scanf, но vs не хочет запускать программу, ссылаясь на ошибку: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Я уже понял, что можно убрать ошибку с помощью #define _CRT_SECURE_NO_WARNINGS, но не проведёт ли это к каким-то последствиям?
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Ответ легко ищется поисковиком.
https://www.cyberforum.ru/c-beginners/thread101856...

ссылаясь на ошибку

Не ошибка, а предупреждение.

но не проведёт ли это к каким-то последствиям?

Можно случайно словить неприятную ошибку в рантайме, если будешь невнимательно пользоваться scanf

scanf - стандартная функция, которая работает ровно так, как написано в доке и в твоей книге.
scanf_s - то же самое, но нужно ещё передать размер буфера - перед записью, функция внутри проверит, что данные укладываются в переданных размер.
https://en.cppreference.com/w/c/io/fscanf
Но обрати внимание на:

As with all bounds-checked functions, scanf_s, fscanf_s, and sscanf_s are only guaranteed to be available if __STDC_LIB_EXT1__ is defined by the implementation and if the user defines __STDC_WANT_LIB_EXT1__ to the integer constant 1 before including .
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы