2012年7月5日木曜日

開発環境

『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の10章(Cプリプロセッサ)10.8(プログラミング実習)実習10-3を解いてみる。

実習10-3.

コード(TextWrangler)

#include <stdio.h>
#define is_digit(x) (('0' <= (x)) && ((x) <= '9'))
#define is_hex(x) (is_digit(x) || \
  (('A' <= (x)) && ((x) <= 'F')) || \
  (('a' <= (x)) && ((x) <= 'f')))
int main(){
  char a;
  char line[100];
  while(1){
    printf("数値を入力: ");
    fgets(line,sizeof(line),stdin);
    sscanf(line,"%c",&a);
    if(is_hex(a)){
      printf("16進数\n");
    } else {
      printf("16進数ではない\n");
    }
  }
  return (0);
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
数値を入力: 5
16進数
数値を入力: 6
16進数
数値を入力: 7
16進数
数値を入力: 8
16進数
数値を入力: 9
16進数
数値を入力: 0
16進数
数値を入力: A
16進数
数値を入力: B
16進数
数値を入力: C
16進数
数値を入力: D
16進数
数値を入力: E
16進数
数値を入力: F
16進数
数値を入力: G
16進数ではない
数値を入力: a
16進数
数値を入力: b
16進数
数値を入力: c
16進数
数値を入力: d
16進数
数値を入力: e
16進数
数値を入力: f
16進数
数値を入力: g
16進数ではない
数値を入力: ^C
$

0 コメント:

コメントを投稿