c언어 scanf함수의 오류 (visual studio)
이거 #define _CRT_SECURE_NO_WARNINGS를 vs에서 scanf를 쓰기위해 썼는데도 오류가 나는데 어떻게 해야하죠
해결책 부탁 드립니다....! 상세히 설명 부탁드려요
- #define _CRT_SECURE_NO_WARNINGS
코드를 두번째 라인에서 적용하셨는데,
#include <stdio.h>이전으로 해보세요.
scanf함수를 사용할때 define적용이 안되서 생기는 에러입니다.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> 안녕하세요!
문의주신 내용은 보안으로 인해 scanf의 사용을 막고있는 부분 때문에 발생 한 오류입니다.
_CRT_SECURE_NOWARNINGS를 define 해주었는데도 오류나는 이유는 정확히 모르겠지만 해결 방법으로는 scanf 대신 권장에 따라 scanf_s를 사용하시거나 나머지 방법은 프로젝트 설정을 변경해주시는 건데 아래 블로그 주소를 참고해주세요.
https://bymakers.tistory.com/6
감사합니다.
이거 #define CRTSECURENOWARNINGS를 vs에서 scanf를 쓰기위해 썼는데도 오류가 나는데 어떻게 해야하죠
해결책 부탁 드립니다....! 상세히 설명 부탁드려요
====> scanf 를 scanf_s 로 수정한뒤에 다시 빌드해보시기 바랍니다........
안녕하세요~!
에러의 내용을 잘 읽어보시길 바랍니다.
문제속에 해답이 있네요 ^^
scanf 함수 대신에 scanf_s 함수로 변경하시면 됩니다
"instead scanf_s" 사용을 권하네요. 이유는 scanf 함수가 "unsafe" 안전하지 않다는 뜻
과거에 c언어 배울때 scanf는 기본으로 사용했는데
특정 버젼이나 환경에서 안전하지 않은 함수로 동작하는거 같습니다.
#define _CRT_SECURE_NO_WARNINGS를 쓰시려면 소스코드 최상단에 이렇게 쓰셔야 작동하는 것으로 알고 있습니다.
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
이러한 방식으로 써보시구요.
또는 #pragma warning(disable: 4996)를 소스 코드 최상단에 작성하시고 코딩을 하는 방법이 있는 것으로 압니다.