Задать вопрос
@DeboshiR
Свободу разработчикам!!!

Как заставить работать scanf?

При использовании scanf выдаёт ошибку:
char str;
printf("qwe");
scanf("%s", &str);
return 0;

Ошибка	2	error C4996: '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.	e:\decanat\consoleapplication15\consoleapplication15\consoleapplication15.cpp	11	1	ConsoleApplication15

После добавления
#define _CRT_SECURE_NO_WARNINGS
ничего не меняется.
А при использовании scanf_s, программа запускается но после ввода значения выкидывает такую ошибку:
dadd1062d568496b8a2b5a511177299f.png
  • Вопрос задан
  • 17882 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@DeboshiR Автор вопроса
Свободу разработчикам!!!
Всё оказалось проще - надо отключить SDL.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@abcd0x00
Это Visual Studio блокирует сишные функции, предлагая свои функции вместо сишных.
Надо добавить в самом начале (до всех строк)
#define _CRT_SECURE_NO_WARNINGS
Ответ написан
Комментировать
@MiiNiPaa
После добавления ничего не меняется.

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

И самое главное: у вас есть один char, в котором есть место для одного символа. При чтении в %s, сохранено будет как минимум два — символ и завершающий 0.
Ответ написан
Ваш ответ на вопрос

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

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