scanf_s와 scanf의 차이는..?

scanf_s와 scanf의 차이는..?질문 요약 :scanf_s를 할때와scanf 를 할때 차이점이있나요?

질문 내용 : scanf의 업그레이드(?)버젼이 scanf_s 인줄 알고 scanf_s를 사용해오는데,
#include stdio.h
int main(void)
{
char asc;
printf(문자 입력: );
scanf(%c, &asc);
printf(아스키 숫자 출력: %d \n, asc);
_getch();
}

여기서

#include stdio.h
int main(void)
{
char asc;
printf(문자 입력: );
scanf_s(%c, &asc);
printf(아스키 숫자 출력: %d \n, asc);
_getch();
}밑에꺼는 작동이 안하는데

위에는 목적한데로 정상 작동하더군요.

무슨 문제가 있는건가요?

댓글 9

  • 아련나래 2026.05.28

    아 원래는 붙여줘야 되는게 맞지만 컴파일러에서 알아서 잘 교정해줘서 안 붙히고 종종 씁니다 ㅋ

  • 피네 2026.05.28

    우선, _getch()가 있는데 conio.h가 안 보여서 이상하군요.
    그리고, scanf_s를 써도 의도한 대로 잘 작동합니다.
    결과값이 이상하다면 다른 것에 문제가 있으니 잘 살펴보세요.

  • 큰솔 2026.05.28

    으음.. 전 안되군요..왜 이러지..;

  • 횃대비 2026.05.28

    제 경우엔 scanf나 scanf_s나 아스키값 %d로 잘나옵니다만...

  • 호습다 2026.05.28

    바보..입니까;;

  • 미련곰팅이 2026.05.28

    마소에서 때때로 업그레이드해서 바보가되는경우가 있죠
    이게 그 경우에요

  • 후예 2026.05.28

    흐음.. scanf_s 사 사용안되는게 아니라, 아스키문자를 항상 0으로 출력하더군요. 차이점은 _s를 붙이냐 안 붙이냐에 따라 제대로 아스키문자를 출력하느냐, 안하느냐...쩝;;

  • 달콤이 2026.05.28

    제가 알기로는 컴파일러가 업그래이드 되면서 문자나 문자열에 대해 조금더 엄격해졌다고 합니다.

    그래서 _s를 붙히면서 좀더 정확한 값을 얻는다고 알고 있습니다.

  • 태양 2026.05.28

    버전 뭐 쓰시는지 저는 2008에서 warning이 나서 scanf_s 씁니다만 잘 작동합니다.

C언어 다른 글

목록