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