Mar 14, 2005   [去年の今ごろ]

C で書いて感動。

 かつて BASIC でプログラミング言語に触れて C で挫折した。

 それから数年経って Windows と Borland C Compiler と web に情報源を手に入れた今、一から勉強し直している。

 今日、ファイルのダンプを表示する処理を関数リファレンスを引きゝ書いてみたら悪戦苦闘の末なんとか出来上がった。かつて BASIC で味わった感動がよみがえってきた。

#include <stdio.h>

#define SCREEN_LINE 24

void main (int argc,char *argv[]) {

    FILE *fp;
    int i, l, k, n;
    unsigned char c[16];
    long adr = 0;
    
    if (argc < 2) {
        printf ("usage: dump filename\n");
        exit(1);
    }

    if ((fp = fopen(argv[1], "rb")) == NULL) {
        printf("file open error.\n");
        exit(ENOENT);
    }
    
    do {
        n = fread(c, sizeof(char), 16, fp);

        printf ("%04X ", adr);
        adr += 16;

        for (i = 0; i < n; i++) {
            printf("%02X ", c[i]);
        }

        printf(" ");

        for (i = 0; i < n; i++) {
            if (c[i] < 0x20 || c[i] > 0x7e){
                c[i] = '_';
            }
            putchar(c[i]);
        }

        printf("\n");

        l++;

/*
        if (l == SCREEN_LINE){
            k = getch();
            if (k == 0x1b ||
            k == 'q' ||
            k == 'Q') {
                exit(0);
            }
            l = 0;
        }
*/
    } while (n > 15);

    fclose(fp);
    
    return;

}

この記事へのコメント

gu:
まさに「うれC」って感じでしょうか。
ogane:
まさにそのとおりです。
Trackback from Tramadol.
:
[Tramadol.]
Trackback from Ambien online.
:
[Ambien next day delivery us. Ambien. Which is better ambien cr or lunestra. Generic ambien available. Ambien next day delivery canada. Ambien sleep medication. Ambien cr side effects.]
 

コメントを書く

お名前:
コメント:

トラックバックURL: http://park18.wakwak.com/~ogane/cgi-bin/blosxom.cgi/computer/200503141658.trackback

Posted at 16:58 -  permalink -  category: コンピュータ -  tags: computer

これまでの記事。

2008 | 5 | 4 | 3 | 2 | 1 |
2007 | 12 | 11 | 10 | 9 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
2006 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
2005 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
2004 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
2003 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
2002 | 12 |