Как выполнить fgets () конкретную строку из файла на C?

Итак, я пытаюсь найти способ fgets () определенной строки в текстовом файле на C, чтобы скопировать содержимое строки в более постоянный буфер:

По сути, мне было интересно, есть ли способ сделать это без чего-то похожего на следующий код:

FILE *fp;
fp = fopen(filename, "r");

char line[256];
char * buffer;
int targetline = 10;
while( targetline > 0)
{
    fgets(line, 256, fp)
}

buffer =(char*)malloc(sizeof(char) * strlen(line));
strcpy(buffer, line);

Так что в основном я не хочу повторять файл n-1 раз, просто чтобы добраться до n-й строки ... это просто не кажется очень эффективным (и, поскольку это домашнее задание, мне нужно получить 100%, ха-ха).

Любая помощь будет принята с благодарностью.

5
задан Pepe 17 November 2011 в 22:15
поделиться