본문 바로가기
ETC/에러 모음

[C언어] Visual Studio scanf 에러 해결하는 방법

by Guardy 2020. 12. 14.
728x90

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.
VS 2013 Scanf error
_CRT_SECURE_NO_WARNINGS error
오류 C4996
'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
scanf_s


다음과 같은 에러가 날때 해결하는 방법이다.

비주얼 스튜디오 2013 버전 이상부터는 scanf를 사용할 때 다음과 같은 에러가 뜹니다.

해석하면 scanf 함수를 이용하면 취약하기 때문에 scanf_s를 쓰거나 _CRT_SECURE_NO_WARNINGS를 사용하라고 권고합니다. scanf의 사용은 오버플로우 취약점때문에 막았다고 합니다. 보안적인 프로그램을 만들때는 scanf_s를 쓰는것을 권장합니다.
하지만 간단한 프로젝트에서는 scanf_s를 매번쓰기 귀찮으니 _CRT_SECURE_NO_WARNINGS를 사용하는법을 알려드리겠습니다.

솔류션 탐색기 -> 프로젝트 명 우클릭 ->  속성으로 들어갑니다.

다음과 같은 화면이 뜹니다.

C/C++에 있는 전처리기로 들어갑니다.

다음과 같이 세미콜론 뒤에 _CRT_SECURE_NO_WARNINGS를 추가하고 세미콜론을 붙여줍니다. 그리고 컴파일 하면 에러가 없어집니다.

이외에 방법은 pragram를 사용하는 방법입니다.

#pragma warning(disable: 4996)

다음 코드를 소스코드 맨 상단에 붙여주면 더이상 에러가 뜨지 않습니다.

 

728x90