以下C程序向后打印文本文件:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="links">
<a href="#section1">Section 1</a>
<a href="#section2">Section 2</a>
<a href="http://google.com" target="_blank">External Link</a>
<a href="#section3">Section 3</a>
<a href="#section4">Section 4</a>
</div>
<div id="section1" class="section"></div>
<div id="section2" class="section"></div>
<div id="section3" class="section"></div>
<div id="section4" class="section"></div>
由于程序应该向后打印文本文件,因此应该从末尾读取每个字符,而不跳过任何字符。如果是这样,我认为while循环中的调用应该是
#include <stdio.h>
#define SEEK_SET 0
#define SEEK_CUR 1
#define SEEK_END 2
int main(int argc, char **argv)
{
FILE *fp = f
open(argv[1], "r");
fseek(fp, -1L, SEEK_END);
while (ftell(fp))
{
putchar(fgetc(fp));
fseek(fp, -2L, SEEK_CUR);
}
putchar(fgetc(fp));
为什么偏移是-2而不是-1?
提前致谢!
答案 0 :(得分:1)
当你调用fgetc时,offset比你预期的要快1,所以你需要移回2来获得你期望获得的char。否则你会一直得到同样的字符。