C言語-コマンドの作成
前へ 目次へ 次へ 

2-4 page

【名前】 page.c - ファイルの内容を1画面分(22行)ずつ表示する。

【書式】 page filename

【解説】 ファイルの内容を1画面分表示して停止し、リターンキーを押すと次の1画面分を表示する。1画面分は22行とする。

 MS-DOSのMOREコマンド、UNIXのmoreコマンドに似たものであり、このようなコマンドをページャーと呼ぶ。

【参照】 num の行数カウントが22になったときに、リターンキーの入力待ちにする。

【フローチャート・ソースリスト】

page


 1:
 2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
#include <stdio.h>
#include <stdlib.h>

#define STRING_MAX 256   /* 最大文字長の定義 */
#define PAGE 22          /* 1画面分の行数の定義 */

int main(int argc, char *argv[])
{
    FILE    *filep;
    char    buff[STRING_MAX];
    int     count = 0;      /* 行数 */

    if(argc != 2){                        /* パラメータ数のチェック */
        printf("Usage : PAGE filename\n");
        exit(1);
    }
    if((filep = fopen(argv[1], "r")) == NULL){  /* オープンチェック */
        printf("can not open file. %s\n", argv[1]);
        exit(2);
    }
    while(fgets(buff, STRING_MAX, filep) != NULL){   /* 1行読み込み */
        ++count;                                     /* 行数カウント */
        printf("%s", buff);                          /* 1行表示 */
        if(count == PAGE){
            printf("--- wait ---");
            gets(buff);                               /* 入力待ち */
            count = 0;                                /* カウントクリア */
        }
    }
    fclose(filep);                                  /* クローズ */
    return(0);
}


前へ 目次へ 次へ 
Copyright © 2001 Hiroshi Masuda 

 

 

inserted by FC2 system