打印文件末尾n行.c

来自「对文件的操作题 包括文件重排 文件加密等等小程序」· C语言 代码 · 共 48 行

C
48
字号
#include <stdio.h>
#include <string.h>
main(int argc,char *argv[])
{
   FILE *in;
   char s[1000][10000]={0},c;
   int j=0,i=0,n=0;
   if(argc!=3||argv[1][0]!='-'||(in=fopen(argv[2],"r"))==NULL)
	   printf("Error!");
   else
   {
	   while((c=fgetc(in))!=EOF)
	   {
		   if(c=='\n')
		   {
			   s[i][j]=c;
		       i++;
		   }
		   else
		   {
			   j=0;
			   s[i][j]=c;
			   j++;
			   while((c=fgetc(in))!=EOF&&c!='\n')
				s[i][j++]=c;
			   i++;
			   if(c==EOF)
				   break;
		   }
	   }
       if(argc==2)
          n=10;
       else
	   {
	      for(j=1;argv[1][j]!='\0';j++)
              n=n*10+(argv[1][j]-'0');
	   }
       for(j=i-n;j<i;j++)
		{
	       printf("%s\n",s[j]);
		}
   }
   fclose(in);
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?