파일 포인터를 앞으로 이동하려는데요..

hcjung의 이미지

fprintf(out, "%s\n", str);

각기 다른 길이를 가진 15라인을 위 형식으로 파일에 썼습니다.

그 후 5-10 라인을 읽어서 출력하고 싶다면 어떻게 해야 할까요?

fseek를 쓰자니 각 라인의 길이가 달라서 계산 할 수도 없고..

거꾸로 읽어 가는데 있다면 좋을 것 같은데.....

부탁드립니다.

서지훈의 이미지

그냥.. fgets()로 처음부터 10라인까지 읽어서 앞의 4라인은 버리고 필요한 6라인만 출력을 하는 형식으로 해야 할것 같군요.
저로서는 이것 말고는 별다른 뾰족한 방법을 말씀 드리기가 어려울듯 ...

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

doldori의 이미지

5번째 라인을 쓰기 전에
long pos = ftell(fp);
다 쓰고 난 후에 원하는 위치로 가려면
fseek(fp, pos, SEEK_SET);

mr.lee의 이미지

void printLine(FILE* fp, int begin, int end) {
   int line = 1;
   char c;
   while (fread(&c, 1, 1, fp) > 0 && line <= end) {
      if (line >= begin)
         printf("%c", c);
      if (c == '\n')
         line++;
   }
}