При работе с текстовым файлом программа читает только первую строку

задача: дан файл, содержащий некоторый текст. В новый файл записать самую длинную фразу и фразу с наибольшим количеством слов. Код:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define STRS 1024
#define SPACE ' '

void theLong(char* str) {
    FILE* f;/*файл*/
    int count = 0, max = 0, i = 0, j = 0;
    char word[STRS] = { '\0' };
    f = fopen("new.txt", "w");
    if (!f) {
        printf("ERROR!!!\n");
        exit(1);
    }
    fclose(f);
    for (i = j; str[i] != '\0'; i++) {
        if (str[i] == SPACE)
            continue;
        count = 0;
        for (j = i; str[j] != SPACE && str[j] != '\0'; j++) {
            count++;
        }
        if (max < count)
            max = count;
        i = j;
    }
    f = fopen("new.txt", "a");
        printf("ERROR!!!\n");
        exit(1);
    }
    j = 0;
    for (i = j; str[i] != '\0'; i++) {
        if (str[i] == SPACE)
            continue;
        count = 0;
        for (j = i; str[j] != SPACE && str[j] != '\0'; j++) {
            word[count] = str[j];
            count++;
        }
        if (max == count)
            fprintf(f, "%s ", word);
        for (i = 0; word[i] != '\0'; i++)
            word[i] = '\0';
        i = j;
    }
    fclose(f);
}

int main() {
    FILE* f;
    char str[STRS] = { "\0" };
    f = fopen("lab7.txt", "r");
    if (!f) {
        printf("ERROR!!!\n");
        exit(1);
    }
    fgets(str, STRS, f);
    fclose(f);
    theLong(str);
    return 0;
}

Проблема заключается в том, что программа читает только первую строку файлов, игнорируя что находится на следующих


Ответы (0 шт):