サイトマップ / C言語講座出入り口総目次目次:ファイル>印字可能な文字の数を数える||デモ用

青い直線

印字可能な文字の数を数える

青い直線

[fgets( )とputs( ) ]←このソース→[英文字の出現頻度]

/* ソースプログラムの説明 */

/* まず最初にこのファイルを開いて下さい。"Test.html"を"Test.txt"に変更し、同じホルダーに置いてから実行して下さい。テキストファイルは、印刷可能な文字と、タブ、改行コード、スペース(これらを、区切り文字といいます)で成り立っています。そして、最後にファイルの終わりを示すEOF(End of File)という、特別な値が書き込まれています。スペースを除く印字可能な文字かどうかは、標準ライブラリ関数 isgraph( ) で調べることができます。

今回は同じフォルダにあるテキストファイルを開き、印字可能な文字の数をカウントして、表示します。 */

/* ここからソースプログラム */

#include <stdio.h>
#include <ctype.h>     /* isgraph(  ) で必要 */
#include <stdlib.h>    /* exit(  ) で必要 */

void main(void);

void main(void)
{
    FILE *fp;
    unsigned long total = 0L;        /* カウンタ */
    unsigned long printable = 0L;    /* カウンタ */
    int c;
                                            /* ファイルを開く */
    if ((fp = fopen("Test.txt",  "r")) == NULL) {
        fprintf(stderr, "ファイルを開くのに失敗しました!\n");
        exit (2);                           /* 失敗したらシェルに戻る */
	}

      /* EOF に達するまで、 */
    for (c = fgetc(fp); c != EOF;  c = fgetc(fp), total++)
        if (isgraph(c))             /* 印字可能なら */
            printable++;            /* カウンタをインクリメント */
		
    printf("ファイル名: Test.txt\n");
    printf("文字数の合計: %lu\n", total);
    printf("印字可能文字数の合計: %lu\n", printable);

    fclose(fp);
}

/* ここまでソースプログラム */

/* 今回の for ループは少し複雑です。初期化の式が、c = fgetc(fp)で、終了条件が c != EOF で、再初期化の式は二つあり、 c = fgetc(fp) と total++ です。 */

[fgets( )とputs( ) ]←このソース→[英文字の出現頻度]

青い直線

/* (C) 2000- YFプロ. All Rights Reserved. */    提供:C言語講座−それ自体コンパイルできる教材を使った講座です−

青い直線

サイトマップ / C言語講座出入り口総目次目次:ファイル>印字可能な文字の数を数える||デモ用