0
main() 
{
     FILE *fp;
     char c;
     int count=1;
     fp=fopen("D:\file.txt","r");
     printf("%d ",count);
     c = fgetc(fp);
     while(c!=EOF) 
     {
         if(c=='\n')
         {
              count++;
              printf("\n%d",count);
         }
         putchar(c);
         c=fgetc(fp);
     }
     fclose(fp);
}
4

1 に答える 1

2

また、ファイルから読み取ったばかりの改行を印刷しています。

変化する

if(c=='\n') {
 count++;
 printf("\n%d ",count);
}
putchar(c);

if(c=='\n') {
 count++;
 printf("\n%d",count);
} else {
  putchar(c);
}

または、行番号を印刷するときに改行を印刷しないでください。

putchar(c);
if(c=='\n') {
  count++;
  printf("%d ",count);
}

あなたも変更する必要があります

char c;

int c;

getchar()はintを返し、EOFはcharで表すことができない値です。

于 2012-09-02T09:51:43.210 に答える