C言語ケーススタディ ファイルTYPEコマンドの作り方1




2014年10月より個人の方を対象に、Study C無料提供を開始しました。
C言語を勉強中の方は、学習・教育に最適なC言語インタープリタのStudy Cを使ってみてください(個人の方は無料です)。
大学・高専・高校などの教育機関での採用実績も多数あるロングセラー商品Study Cが、個人向けに無料提供を始めました。
インタープリタの手軽さに加え、ゲームや3Dタートルグラフィックで楽しく勉強したりと、C言語の学習を強力にサポートします。
ブロック崩しゲーム 3Dツリー クリスマスツリー
また、このようなボタンの用意されているページでは、掲載しているプログラムをStudy Cに直接ロードし実行したりすることができます。
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する
Study C無料利用についての詳細は、このページを参照してください。



ファイルTYPEコマンドはファイルの内容を読み込みながら画面に表示するだけの簡単なコマンドです。 読み込むファイルのファイル名はコマンドラインから指定できるようにします。 StudyCユーザーの方は専用講座に、コマンドラインからパラメータを受け取る方法が第18回講座に説明されているので参照してください。

ファイルからの読み込みはfgets関数を使用します(その前にfopen関数でファイルオープンしておきます)。 fgets関数をループ内で呼び出しファイルの最後に達したらループを終了します(fclose関数でファイルをクローズします)。

#include <stdio.h>

main(int argc, char *argv[])
{
        FILE    *fp;
        char    buff[1000];

        if(argc != 2){
                printf("コマンドの入力形式が間違っています.\n");
                return;
        }
        fp = fopen(argv[1], "rb");
        if(fp == NULL){
                printf("ファイルがオープンできません[%s].\n", argv[1]);
                return;
        }
        for(;;){
                if(fgets(buff, sizeof(buff)-1, fp) == NULL)
                        break;
                printf("%s", buff);
        }
        fclose(fp);
}
Study Cにロードする Study Cにロードし編集する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて... 「run file」のように実行する必要があるので実行ボタンはありません
次に各行の先頭で行番号を表示するように変更します。 行番号を保持する変数lnoを作成し各行の先頭で表示します。また、lnoの値はループごとに1づつ増加させます。

#include <stdio.h>

main(int argc, char *argv[])
{
        FILE    *fp;
        char    buff[1000];
        int     lno;

        if(argc != 2){
                printf("コマンドの入力形式が間違っています.\n");
                return;
        }
        fp = fopen(argv[1], "rb");
        if(fp == NULL){
                printf("ファイルがオープンできません[%s].\n", argv[1]);
                return;
        }
        for(lno = 1; ; lno++){
                if(fgets(buff, sizeof(buff)-1, fp) == NULL)
                        break;
                printf("%d: %s", lno, buff);
        }
        fclose(fp);
}
Study Cにロードする Study Cにロードし編集する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて... 「run file」のように実行する必要があるので実行ボタンはありません


[an error occurred while processing this directive]