/************************************
10進<->16進基数変換プログラム(6-11)
************************************/
#include <stdio.h>

int main(void)
{
    char ch;                      /*入力文字*/
    unsigned long data;           /*入力データ*/

    /*プロンプト出力*/
    printf("\n");
    printf("> ");

    /*入力がある限り以下の処理を繰り返す*/
    while((ch=getchar()) != EOF ){

        /*入力文字によって場合分けする*/
        switch(ch){

            /*'d'または'D'が入力された場合以下の処理を実行する*/
            case 'd':
            case 'D':
                /*10進入力ならば以下の処理を実行する*/
                if( scanf("%ld",&data) != EOF )
                    /*16進表示する*/
                    printf(" = %lX(HEX)",data);
		break;

            /*'h'または'H'が入力された場合以下の処理を実行する*/
            case 'h':
            case 'H':
                /*16進入力ならば以下の処理を実行する*/
                if(scanf("%lx",&data) != EOF)
                    /*10進表示する*/
                    printf(" =%lu (DEC)",data);
                break;

            /*'q'または'Q'が入力された場合には終了する*/
            case 'q':
            case 'Q':
                return 0;

            /*その他の入力がなされた場合以下の処理を実行する*/
            default:
                break;

            }

        /*プロンプト出力*/
        printf("\n");
        printf("> ");
    }
    return 0;
}
