본문 바로가기
프로그래밍/c언어 기초공부

[C언어 에러 해결] Visual Studio 2019 scanf() C4996 에러해결

by 졸린이 2021. 8. 2.
반응형

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.

Visual Studio 에서 scanf()를 사용하면 저런 에러가 뜬다.

번역기를 돌려보면

 

이 함수 또는 변수는 안전하지 않을 수 있습니다. 대신 scanf_s를 사용하는 것이 좋습니다. 지원 중단을 비활성화하려면 _CRT_SECURE_NO_WARNNINGS를 사용하세요. 자세한 내용은 온라인 도움말을 참조하십시오.

이렇게 뜬다. scanf_s를 쓰던지 _CRT_SECURE_NO_WARNINGS 를 사용해서 비활성화하라고 한다.

 

우선 첫 번째 해결법 scanf_s를 사용한다.

이렇게 scanf_s("%d", &num, sizeof(4));

이런식으로 사용해줘야 한다. 좀 번거롭다. 그래서 두번째 방법으로 해본다.

 

_CRT_SECURE_NO_WARNINGS

프로젝트 우클릭 => 속성 => C/C++ => 전처리기

=> 전처리기 정의의 우측에 입력란 끝부분에 _CRT_SECURE_NO_WARNINGS;를 입력한다.

  

세미콜론까지 찍어준다. => 확인

 

이렇게 하면 그냥 scaf()로도 에러가 생기지 않는다.

그리고 세 번째 방법으로는 SDL 검사를 하지 않는 것이다.

마찬가지로 Project 우클릭 => 속성 => C/C++ => 일반 => SDL 검사 => 아니요(/sdl-) => 확인

이렇게 해도 오류가 발생하진 않는다.

 

그리고 이 밖에도 코드 상단에 마찬가지로 선언해 주는 방법이 있는데 이 방법 중에서 고르는게 편한 것 같다.

반응형

댓글