c언어 질문있습니다

jinwoo4130의 이미지

# include<stdio.h>
 
int main(void)
{	//char nowHou =0, nowMin =0, nowSec =0;  StackOverFlow Error Why? 
	//short nowHou =0, nowMin =0, nowSec =0;  StackOverFlow Error
	int nowHou =0, nowMin =0, nowSec =0;
 
	scanf("%d %d %d",&nowHou,&nowMin,&nowSec); //현재시간입력 범위지정 할 수 없을까?
	printf("%d %d %d",nowHou,nowMin,nowSec); 
 
	return 0;
}

왜 스택에러가 뜨는거예요?
only2sea의 이미지

그냥 %d라고 쓰면 입력 받은 것은 int형으로 써 버립니다. 뒤에 포인터의 자료형에 상관없이 말이죠.

short을 받으시려면 %d 대신에 %hd를 쓰시고 char를 쓰시려면 %hhd를 쓰세요.

jinwoo4130의 이미지

감사합니다!@

----------------------------
웃으며 살자^^