[Tip] 비쥬얼 스튜디오(visual studio) scanf() 사용불가 오류 잡아보기!
scanf() 실행 안되는 오류 잡기
안녕하세요.
Visual studio 툴로 C언어를 시작하는 분들 중에
scanf 오류로 고생하시는 분들을 위해 문제 해결법을 알려드리겠습니다.
[ 오류 ]
오류 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.
scanf()를 사용하는 예제에서 그대로 사용하셨는대 이러한 오류가 나셔서 당황하신분들!!!!
자세히 알려드릴께요~
우선 오류가 나는 이유는
scanf()는 구조적으로 안정적이지 않아 여러 위험을 안고 있기 때문입니다.
scanf는 문자열 사이즈를 넣지 않아도 사용이 가능하기 때문에 "오버플로우(overflow)"라는
문제점이 발생할 수 있습니다.
이러한 문제 발생을 보안하고자 Visual Studio 2010버전 이상의 컴파일들은 scanf 대신 scanf_s를 사용하라고 권하는 오류입니다.
하지만 처음 배우시는 분들한테 scanf만큼 편한게 없죠?
그래서 컴파일러가 오류를 발생시키지 못하게 scanf를 그대로 쓰는 방법을 알려 드리겠습니다.
[ 해결 방법 ] 1. 전처리기 매크로 정의 추가] -> #define _CRT_SECURE_NO_WARNINGS
|
[ 해결 방법] 2. 지정 에러리스트 무시하기 추가] -> #pragma warning(disable:4996)
4996번 에러를 무시합니다
|
[ 해결 방법 ] 3. 환결설정 변경 SDL 검사 끄기
[1] 우측 솔루션 탐색기에서 자신의 프로로젝트 우클릭 -> 속성
[2] C/C++ 탭 -> SDL검사 끄기!
총 3가지 방법으로 scanf() 함수의 사용 오류를 잡을 수 있습니다.
가장 추천 드리는 방법은 프로젝트 생성하실 때 SDL 검사를 끄는 것 입니다.
감사합니다. 공감 한번 부탁드려요.
'■ Programming > [ Tip ]' 카테고리의 다른 글
[Tip] 프로그램 개발 과정 / 간략하게 (0) | 2017.03.25 |
---|---|
[Tip] C++에서 제공하는 키워드 종류 (0) | 2017.03.20 |
[Tip] scanf() 함수의 형식 지정자 종류 알아보기 (0) | 2017.03.19 |
[Tip] printf() 함수의 형식 지정자 종류 알아보기 (0) | 2017.03.19 |
[Tip] 헝가리안 표기법 (0) | 2017.03.19 |
댓글