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 |
---|
댓글