你想得到文件的长度,不是像你那样的,因为fp的位置指针一直不动,i++是停止不了的,
一种方法是调用io里的filelength函数,不过文件系统有所差别。另外一种就是利用栈来把文件倒序输出,可以是自定义栈,也可以用系统栈(便是递归).
两种方法分别如下:
first:
[CODE]#include <fcntl.h>
#include <io.h>
int handle=open("1.txt",O_RDONLY);
i=filelength(handle);
close(handle);[/CODE]
second:
void reverse(FILE *fp)
{
char ch;
if((ch=fgetc(fp))!=EOF)
{
reverse(fp);
fputc(ch,stdout);
}
}