생선이의 잡다한 블로그

C언어 강좌 10 - gets 로 입력을 받아보자! gets_s 본문

프로그래밍/C언어 강좌

C언어 강좌 10 - gets 로 입력을 받아보자! gets_s

생선스프 2017. 4. 9. 20:30
반응형

안녕하세요 생선스프입니다!


입력을 받는데는 여러가지 함수가 있습니다


scanf gets 등등..


이번 강좌에서는 gets 를 다뤄보도록 하겠습니다


C언어 강좌 9 - scanf로 입력을 받아보자!


gets는 한 줄의 문자열을 읽어들이는 함수입니다


gets는 형태가 puts와 비슷합니다


gets(입력받을공간의주소)


이렇습니다


하지만 이제 gets는 사용할 수 없습니다


gets는 위의 형태를 봐도 알 수 있듯이 자료의 크기를 지정해 줄 수 없습니다

그래서 버퍼오버플로우가 생길수 있는 것이죠


그래서 이 위험한 함수가

2011년에 C 표준 개정안에서 표준 라이브러리에서 삭제되었습니다


이는 VC++ 2012 부터 적용됩니다


그래서 이제는 gets를 찾아봐도 없습니다!


그러면 저희는 무엇을 사용할까요?


아마 예상하신 분들도 계시겠지만 gets_s 입니다


gets_s(입력받을공간의주소, 입력받을크기)


이렇습니다


아래의 예제를 보도록 하겠습니다


1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
void main()
{
    char ch[20];
 
    gets_s(ch,sizeof(ch));
    printf("%s\n", ch);
}
cs

C언어 강좌 8 - 자료의 크기를 구해보자!


그리고 실행을 시켜보면 입력한 그대로 나오는 것을 확인할 수 있습니다


gets_s 는 이게 다입니다!


강좌 읽어주셔서 감사합니다


공감과 댓글은 생선에게 힘이됩니다!

더 많은 C언어 강좌

반응형
Comments