본문 바로가기

C언어_VisualStudio

#4 Visual Studio 2019 scanf 에러 해결하기

 

  오늘은 Visual Studio 2019 scanf 에러를 해결하는 3가지 방법에 대해 알아보도록 하자. :-)

Visual Studio 2019를 설치하고 코드를 작성할 때, 가장 많이 사용하는 함수는 아무래도 scanf()와 printf()일 것이다. 그런데, 몇가지 조치를 취하지 않으면 scanf()를 사용할 때 문제가 생긴다. 

 

 

  Visual Studio 2013 버전 이상부터 scanf를 사용하면 C4996 'scanf':This function or variable maybe unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.라는 에러 메시지와 함께 컴파일이 안된다. 에러 메시지를 확인해보면 scanf 함수가 안전하지 않으니 scanf_s 함수를 사용하거나 _CRT_SECURE_NO_WARNINGS를 사용하라고 나온다.

 

  이같은 문제를 해결하는 데는 3가지 방법이 있고 그중에 편한 것 하나를 선택해서 사용하면 된다.  

 

1) _CRT_SECURE_NO_WARNINGS

2) SDL 검사 예(/sdl) -> 아니오(/sdl-)

3) #pragma warning(disable:4996)

 

1)_CRT_SECURE_NO_WARNINGS

솔루션 탐색기 -> 프로젝트 명에 마우스 우클릭 -> 속성 (Alt+Enter)

 

구성 속성 -> C/C++ -> 전처리기 -> 전처리기 정의 오른쪽 칸 안의 텍스트 클릭

 

원래의 텍스트 뒤에 ;_CRT_SECURE_NO_WARNINGS;를 적고 확인을 누른다. 

 

2) SDL 검사 예(/sdl) -> 아니오(/sdl-)

 

솔루션 탐색기 -> 프로젝트 명에 마우스 우클릭 -> 속성 (Alt+Enter)

 

구성 속성 -> C/C++ -> 일반 -> SDL 검사에서 아니오(/sdl-)로 바꿔준다.

 

3) 코드 맨 위에 #pragma warning(disable:4996)을 추가한다. 위에 두 방법보다 훨~씬 간단하다. 

#pragma warning(disable:4996)

 

  오늘은 Visual Studio 2013 버전 이상부터 나타나는 scanf에러를 해결하는 방법을 알아보았다. 물론 이렇게 해결하지 않고 scanf_s함수를 사용해도 된다.