C言語-コマンドの作成 |
2-4 page
【名前】 page.c - ファイルの内容を1画面分(22行)ずつ表示する。
【書式】 page filename
【解説】 ファイルの内容を1画面分表示して停止し、リターンキーを押すと次の1画面分を表示する。1画面分は22行とする。
MS-DOSのMOREコマンド、UNIXのmoreコマンドに似たものであり、このようなコマンドをページャーと呼ぶ。
【参照】 num の行数カウントが22になったときに、リターンキーの入力待ちにする。
【フローチャート・ソースリスト】
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 |