CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): YoungHo (이영호)
날 짜 (Date): 1995년02월13일(월) 11시08분25초 KST
제 목(Title): [Re] C에서 type checking


질문을 보고 coding을 한번 해 보았는데 그사이에 다른 분이 해답을

설명해 주셨더군요

이왕 짠 거니까 굳이 coding 하는데 시간 쓰지 마시고 한번 사용해 보시죠

scanf대신에 get_int 함수를 사용하시면 될것 같습니다.

scanf의 argument가 늘어나면 while문을 늘이면 될거구요.

get_int(i, j)
int *i, *j;
{
    char c;
    *i = *j = 0;

    while((c = getchar()) != '\n' && c != ' ')
    {
        if(!isdigit(c))
        {
            printf("InputA is not digit c = %d\n", c);
            return;
        }

        /*--- 48 : ascii value of '0' ---*/
        *i = (c-48) + (*i) * 10;
    }

    while((c = getchar()) == ' '|| c == '\n');

    do
    {
        if(!isdigit(c))
        {
            printf("InputB is not digit c = %d\n", c);
            return;
        }

        /*--- 48 : ascii value of '0' ---*/
        *j = (c-48) + (*j) * 10;
    } while((c = getchar()) != '\n' && c != ' ');
}

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.