언어/C&C++ 응용

[C] Visual Studio scanf 해결

차가운오미자 2021. 8. 2. 15:45

error C4996 'scanf'에 에러가 뜨는 경우가 있다. 

Visual Studio에서 SDL 검사를 하면서, scanf 가 보안 취약점이 있으니

scanf_s 를 사용하라고 강요(?) 한다. 

에러에서 _CRT_SECURE_NO_WARNINGS를 사용하라고 추천해준다.

 

이 문제를 해결하는 덴 여러 방법이 있다.

 

1. 추천한대로 scanf_s를 사용해도 된다.

scanf_s("%d", &n, sizeof(n));

인자는 차례대로, 포맷 스트링, 변수 주소, 변수의 사이즈이다.

stack overflow를 방지하기 해서 크기를 받는다. 

 

2. _CRT_SECURE_NO_WARNINGS를 사용한다. 

코드 위에 #define _CRT_SECURE_NO_WARNINGS 를 추가해준다. 

 

3. SDL 검사를 끈다. -> 그럼 SDL 검사를 안해서 에러 메시지가 나타나지 않는다. 

맨 밑에 프로젝트 속성에 들어가서

 

C/C++ > 일반 에서 SDL 검사에 네 로 된걸 아니요로 바꿔야 한다. 

그럼 scanf를 사용해도 문제가 발생하지 않는다. 

 

참고: 

https://bymakers.tistory.com/6

 

C언어 Visual Studio scanf 에러 해결 방법

비주얼 스튜디오 2013(VS 2013) 버전 이상부터 scanf 을 사용하면 아래와 같은 에러가 나면서 컴파일이 안됩니다 에러 메시지를 보면 error C4996: 'scanf': This function or variable may be unsafe. Consider u..

bymakers.tistory.com

https://marinelifeirony.tistory.com/14

 

[C언어]#5 입력받기 scanf, scanf_s 문

드디어 외울게 많은 힘든 파트들이 끝났네요 이번에 배울것은 입력을 받아서 저장할수 있게해주는 함수 scanf, scanf_s 를 배워볼건데요. scanf는 Visual 2015때 저가 공부했는데 scanf_s를 쓰는걸 마이크

marinelifeirony.tistory.com

 

'언어 > C&C++ 응용' 카테고리의 다른 글

[C] 난수 발생  (0) 2021.08.03
[C] LNK1168 에러  (0) 2021.08.03
[C++] STL vector  (0) 2021.06.22
[C++ 템플릿] 스택(stack), 큐(queue), 우선순위 큐(priority_queue)  (0) 2021.06.14
[C++] String 라이브러리  (0) 2021.06.14