ファイル内の文字数、桁数、行数をカウントする ac コードを作成しました。残念ながら、行数は正確な数を示していません。以下のコードを書きました。
#include<stdio.h>
void scan();
FILE *fp;
int numbercount=0,textcount=0,spacecount=0,newlinecount=0,specialcount=0;
int main(int argc,char *argv[])
{
if(argc<2)
{
printf("\n Enter the filename through the command line ! ");
}
else
{
fp=fopen( argv[1],"r");
if(fp==NULL)
printf("\n Cannot Open the file ");
else
scan();
}
}
void scan()
{
char ch;
while(1)
{
ch=fgetc(fp);
if((ch>=65 && ch<=90)||(ch>=97 && ch<=122))
{
textcount++;
}
else if(ch>=48&&ch<=57)
{
numbercount++;
}
else if(ch==','||ch=='!'||ch=='?'||ch=='.')
{
specialcount++;
}
else if(ch==' ')
{
spacecount++;
}
else if(ch=='\n')
{
newlinecount++;
}
else if(ch==EOF)
break;
}
printf("\n The count of charecters in the text = %d ",textcount);
printf("\n The count of numbers in the text = %d ",numbercount);
printf("\n The count of special charecters in the text = %d",specialcount);
printf("\n The count of newlines = %d ",newlinecount);
printf("\n The number of spaces = %d \n",spacecount);
}
入力テキスト ファイルの内容をhttp://pastebin.com/GXVdqfzTのように指定しました。コードは行数を 11 ではなく 6 としています。行数を計算する適切な方法はありますか。