[부사리]error C4996: 'scanf'

By | 2013년 4월 28일
Print Friendly, PDF & Email

c 언어에서 빌드 중 아래와 같은 에러가 발생하는 경우

* 에러메세지
error 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.

간단히 정리하면 보안상 어쩌고 저쩌고 하닌 scanf보다 scanf_s를 사용하라고 한다.
c기초과정이라면 scanf 대신 scanf_s를 사용하여 아스키코드값 받으려고 하면 전부 0으로 나온다.
빌드 중 해당 에러를 무시하고 넘어갈 수 있지만 컴파일러에 따라 빌드가 더 이상 진행되지 않는 경우도 있는것 같다.
소스에서 헤더파일 정의 아래에 “#pragma warning(disable:4996)” 이거하나 넣어주면 scanf로
이상없이 빌드된다! 매번 소스에 입력하기 귀찮다면 stdio.h에 #pragma warning(disable:4996)

적어두면 매번 입력하지 않아도 된다.

관련 글

6 thoughts on “[부사리]error C4996: 'scanf'

  1. 파카

    친구가 vs2013버전을 설치하고 이전의 소스가 컴파일 되지않아 이 문제를 해결해주는데 도움되었습니다. 감사합니다~

    Reply
  2. 사랑해요

    헤에.. 사랑합니다 ㅋㅋ 중간에 빌드 안하고 계속 몇백줄 썻다가 이거 딱 하나만 계속 안풀려서 빡쳤었는데 ㅋㅋ 감사합니다 !! 유용히 쓰겠습니다 !!

    Reply
    1. BUSARI Post author

      도움이 되셨다니 저도 기분이 무지 무지 좋습니다. ㅎㅎㅎ

      설 명절 잘 보내세요!

      Reply

댓글 남기기(글만 입력하셔도되요. 이메일,이름,웹사이트 미입력 가능)

This site uses Akismet to reduce spam. Learn how your comment data is processed.