[C언어] scanf 함수 에러 해결하기 (Erorr : C4996)

scanf 함수 에러 해결하기(C4996)


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. Project2 C:\Project2\Project2\FileName.c 8

scanf 사용하면 위와 같은 에러가 뜬다.
대충 scanf 함수는 더 이상 안전성을 보장하지 않아서 scanf_s 함수를 사용하라고 한다.

따라서 scanf_s 함수를 사용하는 것이 바람직하다.
scanf 함수를 강제로 사용 할 수 있는 방법이 몇 가지 있지만 간단한 2가지를 알아보자.




예시 코드

#include <stdio.h>

int main()
{
char input[16];

printf("문자 입력 : ");
scanf("%s", input);

printf("%s\n", input);

return 0;
}


위에 코드가 예시다. 실행 시키면 에러 발생한다.
이제 scanf를 강제로 사용해 보자.




SDL 검사 끄기

첫 번째 방법은 SDL 검사를 끄면 된다.

속성 -> C/C++ -> 일반 -> SDL 검사 아니요






자 이제 다시 코드를 실행 시켜보면 잘 실행 된다.





전처리기 추가하기

두 번째 방법은 아래와 같이 main 함수 위에 전처리기 3줄을 선언해 주면 된다.

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif




이것도 실행 시켜보면 잘된다.
다른 방법들은 복잡해서 굳이 알 필요가 없다.






마치며

처음에 말했던 것 처럼 scaf_s 함수 사용을 권장한다.
웬만하면 scanf, gets 함수 사용을 자제하자.


댓글

이 블로그의 인기 게시물

[Python] 파이썬 if문 사용법과 예제

[네트워크] 오류 제어 방식 이란?(FEC, BEC, ARQ)

[Virtual Box] 가상머신 에러 E_FAIL (0x80004005), (VERR_SUPLIB_PATH_NOT_CLEAN) 해결 방법