如何从下往上逐行遍历文件?例如,这是我从上到下遍历它的代码:
void *readFileTB(char *str1)
{
int size = 1024;
char *buffer = malloc(size);
FILE *fp;
fp = fopen("testfile.txt", "r");
while(fgets(buffer, 1024, fp)) //get a line from a file
{
printf(buffer);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果文件包含:
line1onetest
line2twotest
line3threetest
Run Code Online (Sandbox Code Playgroud)
如果执行此功能将打印以下内容:
line1onetest
line2twotest
line3threetest
Run Code Online (Sandbox Code Playgroud)
我怎样才能编写一个能够完成上述操作但功能相反的函数,以便输出以下内容?
line3threetest
line2twotest
line1onetest
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
一行一行有点困难.如果我们从字节开始,那很简单:我们首先fseek
在底部之前:
if(fseek(fp, 256, SEEK_END) == -1) { /* handle error */ }
Run Code Online (Sandbox Code Playgroud)
由于我们在结束前寻找了256个字节,因此我们可以读取256个字节.然后我们可以寻找256个字节等,直到我们到达文件的顶部.
现在,如果您正在尝试读取文本行,这可能很棘手:您需要在文件末尾读取一些字节并找到最后一个换行符.如果没有,你没有阅读,你需要阅读更多.一旦你找到它,你的线就从那里开始.要阅读下一行,您需要再次向后搜索,不要超过上一行开头.
归档时间: |
|
查看次数: |
544 次 |
最近记录: |