scanf_()함수의 오류?? 정확한 자세한 답변좀
아리알찬
2023.04.01
질문 제목 : scanf_s() 함수 사용 중 이상한점질문 요약 :scanf_s() 함수 사용 중 이상한점
질문 내용 :
위 처럼 scanf()함수 는 경고 메시지가 떠서 scanf_s()함수를 써봤거든요 물론 그냥 공부용이기때문에 scanf()함수를 써도 되는건 알지만 그래도 이렇게도 해보고 저렇게도 해보면서 공부하고싶어서요 그래서 위처럼 코딩을햇는데
결과는 위처럼.. 입력한 문자가 공백으로 출력됩니다. scanf()함수를 쓰면 또 정상적으로 출력 되고요
흠......왜그런지 알고 싶습니다 ^^.;; scanf()함수와 scanf_s()함수의 차이가 단순 보안상의 문제가 아닐 거같은데요.. 위와같은 문제가 발생햇으니 .... 그 차이도 확실히 알고 싶구요 ^^ 알고계신분은 답변부탁드려요
-
승아
네 도움많이 됐습니다^^ 감사합니다
-
얀별
보안상 문제 때문만인게 맞고 문자나 문자열 입력받을땐 버퍼 크기도 같이 명시해야 합니다. 여타 다른 strncpy 같은 n까지의 버퍼 크기를 입력받는 함수와 같은 형태입니다.
그리고 역시 동일한 보안 문제로 gets는 최신 표준에서 아예 삭제됫습니다.
그리고 c에서 main의 표준은 int main 꼴입니다. 묵시적인 int 가정은 구표준부터 제거됬습니다.