본문 바로가기

[C언어]

[c언어] scanf 오류!"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."문제해결방법

안녕하세요 Docker입니다.

 

C언어로 알고리즘 공부를 하다보면 자주 마주하는 scanf에러가 있습니다.

 

에러 메세지는 다음과 같습니다.

"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."

 

scanf함수가 보안적으로 취약하다는 이유로 사용을 자제하라는 메세지입니다.

ㅡㅡ 자제만 하면 되지, 왜 함수까지 멈추는건지;;;

 

가장 대중적인 해결 방법 두가지가 있습니다.

 

1.

#define _CRT_SECURE_NO_WARNINGS

보안적 오류를 무시하겠다는 의미입니다.

#include<stdio.h> 아랫줄에 삽입해주시면 되겠습니다.

 

 

 

2.

scanf_s,strcpy_s,fopen_s등 자주 사용되는 함수들에 _s 를 붙이는 것입니다.

scanf_s("%d",&n); 등과 같이 _s를 붙여서 사용하면 에러없이 사용되는것을 확인할 수 있습니다.