次のコードを書きましたが、「abcd」と入力すると「dcb」と表示され、最初の文字がスキップされます。while ループのロジックがファイルの境界を超えることはわかっていますが、ファイルを超えると fseek(f2) はまだ 0 ではありません境界。負の値を返す必要があります。
#include<stdio.h>
int main()
{
FILE *f1,*f2;
char ch;
clrscr();
f1=fopen("Input","w");
while((ch=getchar())!=EOF)
putc(ch,f1);
fclose(f1);
f2=fopen("Input","r");
fseek(f2,-1L,2);
while(ftell(f2)!=0)
{
ch=getc(f2);
printf("%c",ch);
fseek(f2,-2L,1);
}
fclose(f2);
getch();
return(0);
}