ソフトウェア開発 C言語

入力ファイルを読み込み、行番号を付けて出力ファイルに書き込む

戻る


入力ファイルを読み込み、行番号を付けて出力ファイルに書き込むコードは以下の通り。

/* 入力ファイルを読み込み、行番号を付けて出力ファイルに書き込む */
#include <stdio.h>
#include <string.h>

#define BUFSIZE 1024

int main(int argc, char **argv)
{
    FILE *fin, *fout;
    char buf[BUFSIZE];
    int i, len;

    if (argc >= 2)
    {
        /* 入力ファイルを開く */
        fin = fopen(argv[1], "r");
        if (fin == NULL)
        {
            fprintf(stderr, "ファイル %s が開けません。", argv[1]);
            return 1;
        }
    }
    else
        fin = stdin;

    if (argc >= 3)
    {
        /* 出力ファイルを開く */
        fout = fopen(argv[2], "w");
        if (fout == NULL)
        {
            fprintf(stderr, "ファイル %s が開けません。", argv[2]);
            if (fin != stdin)
                fclose(fin);
            return 2;
        }
    }
    else
        fout = stdout;

    /* 読み書き */
    i = 1;
    while(fgets(buf, BUFSIZE, fin) != NULL)
    {
        /* 改行文字を取り除く */
        len = strlen(buf);
        if (len > 0 && buf[len - 1] == '\n')
            buf[len - 1] = 0;

        /* 行番号を付けて出力 */
        fprintf(fout, "%04d: %s\n", i, buf);
        i++;
    }

    /* 入出力ファイルを閉じる */
    if (fin != stdin)
        fclose(fin);
    if (fout != stdout)
        fclose(fout);

    return 0;
}

ソース: lineno.zip


国内格安航空券サイトe航空券.com

戻る

©片山博文MZ
katayama.hirofumi.mz@gmail.com

inserted by FC2 system