我编写了以下代码,但是当我输入“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);
}