본문 바로가기
Development/Visual Studio

[Visual Studio]C4996: 'scanf' 오류 메시지와 해결 방법

by wintercamo3482 2024. 11. 14.

1. 문제 발생 조건

 

비주얼 스튜디오의 특정 버전부턴 scanf를 그냥 사용하면 위와 같은 에러가 발생한다.

 

해석을 하면 scanf()는 안전하지 않기 때문에 scanf_s를 대신 사용하거나 _CRT_SECRUE_NO_WARNINGS를 사용하라고 한다.

 

scanf 뿐만 아니라 strcpy 등 특정 함수는 보안에 허점이 있기 때문에 사용을 권장하지 않는 것인데, 해결 방법은 아래와 같다.​

2. 에러 메시지에 따르기

친절하게 scanf() 대신 scanf_s()나 strcpy_s() 등을 사용하라고 알려주기 때문에 위와 같은 함수로 교체한다.​

3. 매크로 추가

#define _CRT_SECURE_NO_WARNINGS


코드의 상단 부분에 위 매크로를 추가한다.

4. SDL 해제하기

 

scanf() 등을 사용한 코드가 존재하는 프로젝트를 우클릭->속성.

 

좌측 탭에서 C/C++을 클릭하고 SDL 검사를 아니오로 설정 후 적용.