개발자과정준비/C
[C] Scanf 런타임오류 해결 방법
도웅
2020. 10. 10. 10:20
반응형
Scanf 에러떴을때 해결 방법
C 공부하면서 예제를 작성하다가 컴파일을 했을때, scanf에서 C4996 에러가 뜨는 것을 확인할 수 있다.
이러한 에러를 방지하고 실행할 수 있는 방법을 알아보자.
첫번째
최근 비쥬얼 스튜디오에서 scanf는 보안상의 허점을 방지하기위해 scanf_s를 사용하는 것을 권장하고 있다.
두번째
scanf_s 에 신경쓰고싶지않다면 맨 위에서 #pragma warning(disable: 4996) 을 선언해주면 된다.
4996 에러를 무시하고 컴파일 하겠다는 뜻으로, 에러의 원인인 C4996을 무시하고 컴파일하게 해준다.
세번째.
프로젝트의 속성에서 C/C++ -> 일반 -> SDL 검사를 '아니요'로 바꿔주고 적용을 클릭해준다.
SDL검사를 아니오로 했을때, 그대로 실행되는 것을 알 수 있다.
가장 추천하는 방법은 #pragma warning(disable: 4996) 를 사용하는 것이다.
딱 한줄만 작성하면 해결되므로 가장 간단하고 직관적으로 문제를 해결할 수 있다.
scanf_s는 하나라도 _s를 붙이지못하면 에러가떠서 난처해질 수 있고, 3번째 방법인 SDL 설정을 바꾸는 것은 프로젝트 파일을 옮겼을때 이런 세팅을 다시 해줘야하기때문에 번거로워질 것이다. 그래서 3번째 방법은 추천하지 않는다.
반응형