exit? return

ch0nn0m의 이미지

q를 눌렀을대 무한루프로 뭐가 계속 나오는데...
왜 그런걸까요??
exit(0)자리에 return 0; 으로 바꾸게 된다면 정상적인 종료가 되는데...
알려주세요

 int a;
 while(1)
 {
 printf("Choose the number: ");
 scanf("%d",&a);
 switch(a)
  {
   case 1:
    insert();
    break;
    ....
   case 'q':
    exit(0);
  }
}


rgbi3307의 이미지

exit(0)와 return의 문제라기 보다, scanf에 입력되는 데이터 타입(정수형,문자형)의 문제같습니다.
scanf("%d", &a);
아래와 같이 수정하시면,
if (!scanf("%d",&a)) ...;
scanf의 입력에 문제가 있을시 예외처리를 할 수 있습니다.

그리고 switch(a) 에서 a는 정수형이므로 case 'q': 보다는
case 0: 이나 case 9: 이렇게 데이터 타입을 일치시켜 주는게 좋을듯 하네요.

From:
*알지비 (메일: rgbi3307(at)nate.com)
*학창시절 마이크로마우스를 만들었고, 10년동안 IT관련 개발자로 일하고 있음.
*틈틈히 커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))