본문 바로가기

프로그래밍/C++

[C++] 비주얼스튜디오(VS)에서 발생하는 scanf 오류 해결하기

반응형

VS에서 scanf를 사용하려고 하면 아래와 같은 경고, 오류 메세지가 나온다.

 

C6031 반환 값이 무시되었습니다. '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.

 

방법은 여러가지가 있다. 첫 번째로 위 오류 메세지에서 권고한 옵션을 적용하는 것이다.

코드 맨 위에 아래 코드를 한 줄 추가하면 C4996 오류 메세지가 없어지며 컴파일이 된다.

 

#define _CRT_SECURE_NO_WARNINGS

 

하지만, C6031 경고 메세지는 없어지지 않는다. 이를 없애려면 윗줄과 더불어 아래를 추가한다.

 

#pragma warning(disable : 6031)

 

그러면 이제, 경고 메세지도 없이 깔끔해진다.

위를 활용하면 #define _CRT_SECURE_NO_WARNINGS 대신에 아래줄도 동일하게 적용할 수 있다.

 

#pragma warning(disable : 4996)

 

참고로, 프로젝트 속성에서 C/C++ 탭으로 들어간 뒤 SDL 검사를 아니요(/sdl-)로 설정하면 C4996 오류 메세지를 끌 수 있다. 하지만 이 경우에는 오류로 컴파일이 안 되던 문제만 해결될 뿐, 경고 메세지로써 C4996 메세지가 계속 나온다.

 

반응형