반응형
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번째 방법은 추천하지 않는다.
반응형
'개발자과정준비 > C' 카테고리의 다른 글
[C] 포인터 - 1 (0) | 2020.10.14 |
---|---|
[C] 반복문을 활용해서 구구단 출력 (0) | 2020.10.13 |
[C] 반복문(while, do-while, for) (0) | 2020.10.08 |
[C] 제어문 (if, else if, switch, goto) (0) | 2020.10.07 |
[C] 연산자 - 2(Cast 연산자, 비트연산자) (0) | 2020.10.06 |