- 从文件末尾向上依次读取文本文件的每一行,话不多说,贴代码:
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 128
void read_line(FILE *infile, FILE *outfile)
{
char buffer[MAX_LINE_LENGTH] = {0};
fgets(buffer, MAX_LINE_LENGTH, infile);
if (strlen(buffer) > 0) {
if(buffer[0] != '\n') {
fputs(buffer, outfile);
}
}
}
int main()
{
FILE *infile = fopen("test.txt", "r");
FILE *outfile = fopen("new_test.txt", "w+");
if (!infile || !outfile) {
perror("Failed to open file!");
return 1;
}
fseek(infile, 0, SEEK_END);
long size = ftell(infile);
long pos = size-1;
while (1) {
pos--;
fseek(infile, pos-size, SEEK_END);
if (pos == 0) {
read_line(infile, outfile);
break;
}
char c = fgetc(infile);
if (c == '\n') {
read_line(infile, outfile);
}
}
fclose(infile);
fclose(outfile);
return 0;
}