728x90
반응형
평소와 다를 것 없이 비주얼 스튜디오 2013에서 scanf 를 쓰려고 하면
Error 1 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. c:\users\kgu\documents\visual studio 2013\projects\project3\project3\statistic.cpp 10 1 Project3
라는 오류가 나면서 컴파일이 되지 않는다. 그렇기 때문에 비주얼 스튜디오 2013 버전에서는 그동안 써왔던 scanf를 scanf_s로 바꿔주어야한다.
최근 몇 년 동안 보안 문제 때문에(버퍼 오버플로우를 이용한 공격을 방어하기 위한..) scanf_s가 나오게 되었다고 한다.
버퍼 오버플로우 공격 관련 글 참조
http://eehoeskrap.tistory.com/9
scanf와 scanf_s의 차이로는 character와 character pointer를 입력받는 경우 버퍼의 크기를 하나 더 적어줘야한다는 것 뿐 은 기억하기 귀찮으니까
그냥
#pragma warning(disable:4996)
을 코드 상단에 써주어 scanf 를 그대로 사용하자 ㅋㅋㅋㅋ 그럼 이제 오류가 안뜨고 잘~실행됨
이런식으로..
728x90
반응형
'Programming > C | C++' 카테고리의 다른 글
[C] printf 출력형식 %d %i %u %X %x %o %p %s %c %C %f %e %E %g %G (2) | 2018.08.29 |
---|---|
[C] 포인터 (0) | 2018.08.21 |
[C] 파일 목록 가져오기 (2) | 2018.08.16 |
[C++] 전처리문의 종류 (0) | 2018.08.05 |
[C++] STL 정리 (0) | 2018.08.05 |