¿Cómo almacenaría solo el bit final de un archivo en una variable en c

Mi Código es el siguiente:

#include  int main(int argc, char *argv[]){ char line1[128]; char line2[128]; char line3[128]; char rem_text[128]; FILE *f; f = fopen((argv[1]), "r"); if (!f) { printf("error"); } else { fscanf(f, "%127[^\n]\n%127[^\n]\n%127[^\n]\n%127[^\n] ", line1, line2,line3, rem_text); printf("1:%s\n", line1); printf("2:%s\n", line2); printf("3:%s\n", line3); printf("4:%s\n", rem_text); fclose(f); } return 0; } 

El progtwig funciona casi como se espera, excepto por un detalle. Lo que se supone que debe hacer es tomar las primeras tres líneas de un archivo y almacenarlas en variables individuales. (que funciona) pero luego me gustaría almacenar todo el bit restante del archivo en su propia variable. ¿Cómo puedo hacer eso?

Si por ejemplo mi archivo test.txt contiene

 Kapitel 1 chapter_21.txt chapter_42.txt 'Would you tell me, please, which way I ought to go from here?' 'That depends a good deal on where you want to get to,' said the Cat. 'I don't much care where -' said Alice. 'Then it doesn't matter which way you go,' said the Cat. '- so long as I get SOMEWHERE,' Alice added as an explanation. 'Oh, you're sure to do that,' said the Cat, 'if you only walk long enough.' 

Me gustaría almacenar Kapitel 1 como Title

chapter_21.txt como chapter_a

chapter_42.txt como chapter_b

y

 'Would you tell me, please, which way I ought to go from here?' 'That depends a good deal on where you want to get to,' said the Cat. 'I don't much care where -' said Alice. 'Then it doesn't matter which way you go,' said the Cat. '- so long as I get SOMEWHERE,' Alice added as an explanation. 'Oh, you're sure to do that,' said the Cat, 'if you only walk long enough.' 

como rem_text

Sobre todo porque no escribo mucho C en estos días, y para dar algunos ejemplos, y lo más importante (aunque este no es realmente el foro correcto) para solicitar las críticas extremas que probablemente siga para afinar mis habilidades de encoding, ahora aburridas, Yo propondría:

 #include  #include  #include  FILE *Fopen(const char *path, const char *mode) { FILE *rv = fopen(path, mode); if(rv == NULL) { perror(path); exit(EXIT_FAILURE); } return rv; } int main(int argc, char *argv[]){ char buf[4096]; char *line[4] = {0}; FILE *f; f = argc > 1 ? Fopen(argv[1], "r") : stdin; if(fread(buf, sizeof *buf, sizeof buf, f) == sizeof buf) { fprintf(stderr, "This file is too big. Need to implement dynamic sizing\n"); exit(EXIT_FAILURE); } line[0] = buf; for(int i=1; line[i-1] && i < sizeof line / sizeof *line; i++) { line[i] = strchr(line[i-1], '\n'); if(line[i]) { *line[i] = '\0'; line[i] += 1; } } for(int i=0; i < sizeof line / sizeof *line; i++) { printf("line[%d] = %s\n", i, line[i]); } return 0; } 

Tenga en cuenta que dimensionar dinámicamente las matrices es bueno saber cómo hacerlo. Se deja como ejercicio para el lector.