待读入文件
1.greenteemo
2.csdn
3.blog
代码,详细说明见注释
#include <stdio.h>
#define LENGTH_OF_LINE 1024
int main(){
FILE *fp = fopen("file.txt", "r"); // 打开文件
char line[LENGTH_OF_LINE];
while( fgets(line, LENGTH_OF_LINE, fp) ){
printf("%s\n", line); // 读取文件内容
}
// back to beginning of file
// 当前文件指针指向文件末尾
printf("=== back to beginning of file ===\n");
rewind(fp); // 回到文件最开头
fgets(line, LENGTH_OF_LINE, fp); // 读入第一行,此时文件指针指向第二行开头
printf("current line : %s\n", line);
// back to beginning of line
printf("=== back to beginning of line ===\n");
fgets(line, LENGTH_OF_LINE, fp); // 读入第二行,此时文件指针指向第三行开头
long offset = ftell(fp); // 记录第三行开始的位置与文件开头的偏置值
fgets(line, LENGTH_OF_LINE, fp); // 读入第三行,此时文件指针指向文件末尾
printf("current line :%s\n", line);
fseek(fp, offset, SEEK_SET); // 根据offset回到第三行开头
fgets(line, LENGTH_OF_LINE, fp); // 读入第三行,此时文件指针指向文件末尾
printf("current line :%s\n", line);
return 0;
}
输出
1.greenteemo
2.csdn
3.blog
=== back to beginning of file ===
current line : 1.greenteemo
=== back to beginning of line ===
current line :3.blog
current line :3.blog