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