본문 바로가기
  • 시간(時間)을 아끼는 방법은 시간을 낭비하지 않는것


Compiler/VISUAL_STUDIO

Visual Studio) scanf 에러 해결 방법

by pk7912 2022. 5. 2.
728x90
728x90

비주얼 스튜디오 2013(VS 2013) 버전 이상부터 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.

에러 메시지 해석 :

오류 C4996: 'scanf': 이 함수 또는 변수는 안전하지 않을 수 있습니다. 대신 scanf_s를 사용하는 것이 좋습니다. 지원 중단을 비활성화하려면 _CRT_SECURE_NO_WARNINGS를 사용하세요.

scanf 에러 해결 방안은 총 5가지가 있다.

1. 첫번째 define CRTSECURE_NO_WARNINGS 입력

2. SDL검사를 안 한다로 설정

3. 솔루션 프로젝트를 만들 때 SDL검사 체크 해제하기

4. #pragma warning(disable : 4996)

5. 마지막으로 scanf 대신에scanf_s를 사용


1. 우선 첫번째로 define _CRT_SECURE_NO_WARNINGS를 사용

첫 번째직접 입력하는 방법

두 번째 설정에서 바꾸기

첫 번째는 매번 define _CRT_SECURE_NO_WARNINGS를 입력하면 됨

두 번째는 설루션 탐색기에서 자신의 프로젝트 명을

마우스 오른쪽 클릭 -> 속성에 들어갑니다

적혀있는 글 맨 뒤에 ; 다음에 _CRT_SECURE_NO_WARNINGS; 입력!!

다시 빌드(컴파일) 시켜보면 에러가 없어짐

2. 속성 창에서  SDL검사를 안 한다로 설정!!

3. 설루션 프로젝트를 만들 때 SDL(Security Development Lifecycle) 검사 부분을 체크 해제하는 것입니다

4. #pragma warning(disable : 4996)

5. 마지막으로 scanf 대신에 scanf_s를 사용

#include <stdio.h>

int main()
{
	int num1, num2;
	print("숫자 입력: ");
	scanf_s("%d", &num1);

	return 0;
}

'Compiler > VISUAL_STUDIO' 카테고리의 다른 글

컴파일러 Visual Studio) SDL검사에 대해...  (0) 2022.05.02

댓글