以下は、ファイルポインタをfp
で表示し、印刷する行の数をnum
としたものです。今は、必要な行ではなく、完全なファイルを表示します。最後のn行のファイルをcを使用して印刷します。
void dispfile(FILE *fp, int num)
{
long int pos;char s[100];
int count;
fseek(fp, 0, SEEK_END);
pos=ftell(fp);
while(pos)
{
fseek(fp, --pos, SEEK_SET);
if(fgetc(fp)=='\n')
{
if(count++ == num)
break;
}
}
while(fgets(s, sizeof(s), fp))
{
printf("%s",s);
//fputs(s, stdout);
}
}
私はあなたのコードを試してみて、それは私のために働いた。 – Barmar
どのように動作したのですか?私には、frst文字を除いてもう一度compltファイルを表示しています。 – Barara
[c/C++のファイルから最後のn行を読み込む]の可能な複製(http://stackoverflow.com/questions/17877025/reading-last-n-lines-from-file-in-cc) – tarashypka