아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
클래식한콰가284
클래식한콰가28421.01.01

c언어 scanf함수의 오류 (visual studio)

이거 #define _CRT_SECURE_NO_WARNINGS를 vs에서 scanf를 쓰기위해 썼는데도 오류가 나는데 어떻게 해야하죠

해결책 부탁 드립니다....! 상세히 설명 부탁드려요

55글자 더 채워주세요.
답변의 개수5개의 답변이 있어요!
  • #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)를 소스 코드 최상단에 작성하시고 코딩을 하는 방법이 있는 것으로 압니다.