C 将文本文件内容逆序打印

方法一:文件指针固定,依靠偏移量来访问文件内容

 1 void reverse(FILE* fpin)
 2 {
 3     long count = 0;
 4     fseek(fpin, 0, SEEK_END);
 5     while(fseek(fpin,--count,SEEK_END) == 0)
 6     {
 7         fseek(fpin, count, SEEK_END);
 8         putc(getc(fpin), stdout);
 9     }
10 }

 

方法二: 偏移量固定,依靠SEEK_CUR当前指针来访问文件内容

 1 void reverse(FILE* fpin)
 2 {
 3     char ch;
 4     //将文件指针定位到尾部
 5     fseek(fpin, 0, SEEK_END);
 6     //当前指针向文件头部偏移1位,当超出文件范围时退出
 7     while (fseek(fpin, -1, SEEK_CUR) == 0)
 8     {
 9         //获取当前文件指针指向的内容,此时文件指针会自动向文件尾部移动1位
10         ch = getc(fpin);
11         //向屏幕打印当前字符
12         putc(ch, stdout);
13         //将当前指针向文件头部偏移1位以纠正读取指针的偏移量
14         fseek(fpin, -1, SEEK_CUR);
15     }
16 }

 

posted @ 2017-05-07 18:08  黑马网仔  阅读(517)  评论(0编辑  收藏  举报