C语言,怎么读取文件指针的上一行内容
时间: 2023-07-18 17:12:07 浏览: 68
要读取文件指针的上一行内容,需要在文件中回退到上一行的末尾,然后向前遍历直到找到上一行的开头。
以下是一个示例代码:
```c
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
fseek(fp, 0, SEEK_END); // 移动到文件末尾
long pos = ftell(fp); // 获取文件末尾的位置
int count = 0;
while (pos) {
fseek(fp, --pos, SEEK_SET); // 移动到上一个字符
if (fgetc(fp) == '\n') {
count++; // 找到了一行
if (count == 2) {
break; // 找到了上一行
}
}
}
char line[256];
fgets(line, 256, fp); // 读取上一行的内容
printf("Previous line: %s", line);
fclose(fp);
return 0;
}
```
上面的代码打开了一个名为 `example.txt` 的文件,并在其中查找上一行的内容。在 while 循环中,我们从文件末尾开始向前遍历,直到找到两个换行符,表示我们找到了上一行的末尾。然后,我们使用 `fgets` 函数读取上一行的内容。
需要注意的是,上面的代码并没有处理文件中只有一行的情况。在这种情况下,while 循环不会执行,我们需要另外处理。