|
ファイルを読み込んで、半角英数をa〜jまでカウントして表示する、簡単なプログラムを作りたいのですが、改行を上手く読み飛ばすことが出来ません。どなたか、よければ改行の読み飛ばし方を教えて下さい。
改行を含まないファイルを、カウントするプログラムまでは何とか作成できたので下記にソースを載せておきます。
なにぶん、初心者なものでおてやわらかにお願いします。
(英数カウント:ソース)
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char s[256]={0};
char csmole[10]={'a','b','c','d','e','f','g','h','i','j'};
char cbig [10]={'A','B','C','D','E','F','G','H','I','J'};
int i=0,j=0,c=0;
int a[26]={0};
fp = fopen("sample.txt","r");
if(fp == NULL){
printf("ファイルのオープンに失敗しました。\n");
exit(2);
}
else{
printf("ファイルをオープンしました。\n");
}
while (fgets(s, 256, fp) != NULL) {
for(s[i];s[i]!=NULL;i++){
for(j=0;j<=9;j++){
if(s[i]==(csmole[j])||s[i]==(cbig[j])){
a[j]++;
}
}
}
}
for(i=0;i<=9;i++){
printf("%c",csmole[i]);
printf("%3d",a[i]);
printf(" ");
for(j=0;j<a[i];j++){
printf("*");
}
printf("\n");
}
fclose(fp);
printf("ファイルをクローズしました。\n");
return 0;
}
(sample.txt)
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(改行)
bbbbbbbbbb(改行)
cccccccccccccccccc(改行)
ddddddddddddddddddddddddd(改行)
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee(改行)
fffffffff(改行)
ggggg(改行)
hhhhhhhhhhhhhhhhhhhhhhh(改行)
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii(改行)
|