none
2015버전 c에서 gets 사용 문제. RRS feed

  • 질문

  • c언어를 배울 때 2012 버전에서 만들었던 소스를 2015에서 열었는데 gets 함수를 자꾸 프로그램이 스킵해서 아래 코드들이 전부 작동문제가 생깁니다.

    그래서 찾아보니 2015버전부터는 gets사용이 안되고 gets_s나 getws_s만 사용이 가능하다고 해서

    gets_s(keyword, 200);으로 변경했어도 자꾸 함수를 스킵합니다.

    재밌는건 다른 부분에서의 gets는 gets_s로 변경하지 않아도 정상적으로 잘 동작한다는 겁니다.

    아래는 앞부분부터 gets까지 코드고 왜 이 함수가 스킵되는지 궁금합니다..

        int find=0,i,j=0,option,age,error=0;
        char keyword[200]/*,age[4]*/;
        FAD find_result[100];

        //추가 검색을 원할것을 대비하여 반복 수행
        while(1){
            system("cls");
            PrintM("title",0);
            if(error==1)
                PrintM("error",1);
            else if(error==2)
                PrintM("error",7);
            else
                printf("\n");            
            PrintM("search",0);
            scanf("%d",&option);
            fflush(stdin);

            //입력받은 option의 범위를 지정하여 범위 밖의 값이 입력된 경우 에러 출력.
            //에러 출력 후 검색 필드 선택 메뉴로 되돌림
            if(option<0||option>3){
                error=1;
                continue;
            }

            if(option==0) break;
            
            system("cls");
            PrintM("title",0);
            PrintM("search",1);
            fflush(stdin);
            //2012버전 기존코드
            //gets(keyword);
            //2015
            gets_s(keyword, 200);


    • 편집됨 nazuna 2016년 3월 24일 목요일 오전 3:57
    2016년 3월 24일 목요일 오전 3:55