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();
}밑에꺼는 작동이 안하는데
위에는 목적한데로 정상 작동하더군요.
무슨 문제가 있는건가요?
-
희미햬
아 원래는 붙여줘야 되는게 맞지만 컴파일러에서 알아서 잘 교정해줘서 안 붙히고 종종 씁니다 ㅋ
-
초고리
우선, _getch()가 있는데 conio.h가 안 보여서 이상하군요.
그리고, scanf_s를 써도 의도한 대로 잘 작동합니다.
결과값이 이상하다면 다른 것에 문제가 있으니 잘 살펴보세요. -
터전
으음.. 전 안되군요..왜 이러지..;
-
널위해
제 경우엔 scanf나 scanf_s나 아스키값 %d로 잘나옵니다만...
-
헤벌심
바보..입니까;;
-
오미자
마소에서 때때로 업그레이드해서 바보가되는경우가 있죠
이게 그 경우에요 -
희라
흐음.. scanf_s 사 사용안되는게 아니라, 아스키문자를 항상 0으로 출력하더군요. 차이점은 _s를 붙이냐 안 붙이냐에 따라 제대로 아스키문자를 출력하느냐, 안하느냐...쩝;;
-
여름
제가 알기로는 컴파일러가 업그래이드 되면서 문자나 문자열에 대해 조금더 엄격해졌다고 합니다.
그래서 _s를 붙히면서 좀더 정확한 값을 얻는다고 알고 있습니다. -
바나나맛캔디
버전 뭐 쓰시는지 저는 2008에서 warning이 나서 scanf_s 씁니다만 잘 작동합니다.