Или вы также можете использовать функцию fscanf в цикле while.
char *nextWord(FILE *stream) {
char *buffer[124], *word;
int previous_size = 0;
while(!feof(!stream)){
int n = fscanf(file, "%s", buffer);
if(word == NULL){
word = malloc(sizeof(char)*n)
} else {
realloc(word, n + previous_size);
}
strncat(word, buffer, strlen(buffer) - 1);
previous_size = n;
}
return word;
}
Небольшое объяснение.Функция fscanf возвращает количество прочитанных символов.Поэтому первое, что я делаю, это сохраняю это значение.Если word равно NULL, вы выделяете его с количеством символов, в противном случае вы назначаете слово с помощью переменной previous_size Не забудьте очистить буфер переменную