-2

ファイル内の文字数、桁数、行数をカウントする 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 としています。行数を計算する適切な方法はありますか。

4

3 に答える 3

2

ファイルには 6 行ありますが、それらは折り返されているだけで、11 行のように見えます。

于 2013-06-18T10:11:48.850 に答える