待讀入文件
1.greenteemo
2.csdn
3.blog
代碼,詳細說明見注釋
#include #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