サイトマップ / 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言語講座−それ自体コンパイルできる教材を使った講座です−