2013年7月31日水曜日

開発環境

プログラミング言語C 第2版 ANSI規格準拠 (B.W. カーニハン D.M. リッチー (著)、 石田 晴久 (翻訳)、共立出版)の第5章(ポインタと配列)、5.1(ポインタとアドレス)、5.2(ポインタと関数引数)、演習5-1を解いてみる。

その他参考書籍

演習 5-1.

コード

sample.c

#include <ctype.h>

int getch(void);
void ungetch(int);

int getint(int *pn)
{
    int c, sign, d;
    
    while (isspace(c = getch()))
        ;
    if (!isdigit(c) && c != EOF && c != '+' && c != '-') {
        ungetch(c);
        return 0;
    }
    sign = (c == '-') ? -1 : 1;
    if (c == '+' || c == '-') {
        /* 追加個所 */
        d = c;
        if (!isdigit(c = getch())) {
            ungetch(d);
        }
        ungetch(c);
        return d;
    }
    for (*pn = 0; isdigit(c); c = getch()) {
        *pn = 10 * *pn + (c - '0');
    }
    *pn *= sign;
    if (c != EOF) {
        ungetch(c);
    }
    return c;
}

こんな感じでいいのかなぁ。

0 コメント:

コメントを投稿