Я пытаюсь создать функцию read_lines, которая принимает файл * fp, указатель на строки char ** и указатель на int num_lines. Функция должна вставлять каждую строку текста в строки и увеличивать num_lines на столько строк, сколько имеется в файле.
Возможно, это действительно просто, но я пытаюсь вставить текст уже несколько часов.
Вот как будет выглядеть main.c. Все, кроме read_lines, уже определено и работает. Файл может содержать любое количество строк, вкладок и даже может быть только символом новой строки.
(это задание домашней работы, поэтому main.c и объявление функции должны оставаться неизменными)
int main(int argc, char* argv[]){
char** lines = NULL;
int num_lines = 0;
FILE* fp = validate_input(argc, argv);
read_lines(fp, &lines, &num_lines);
print_lines(lines, num_lines);
free_lines(lines, num_lines);
fclose(fp);
return 0;
}
Это одна из моих попыток добавить строки, но я не смог понять.
read_lines.c
void read_lines(FILE *fp, char ***lines, int *num_lines) {
int i;
int N = 0;
char s[200];
for (i=0; i<3; i++)
{
while(fgets(s, 200, fp)!=NULL){N++;}
char strings[50][200];
rewind(fp);
fgets(s, 200, fp);
strcpy(lines[i],s);
}
}
Буду признателен за помощь в решении этой проблемы, спасибо.