При работе с текстовым файлом программа читает только первую строку
задача: дан файл, содержащий некоторый текст. В новый файл записать самую длинную фразу и фразу с наибольшим количеством слов. Код:
#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;
}
Проблема заключается в том, что программа читает только первую строку файлов, игнорируя что находится на следующих