Я написал следующую программу для построчного чтения файла и сохранения его в массиве слов. На выходе должны быть два случайных слова из массива. Но на удивление массив слов содержит только последнее слово, прочитанное повторно. Любая помощь в том, что пошло не так?
int main(){
int i = 0;
char line_buffer[BUFSIZ];
char* words[20];
FILE *fp = fopen("input.txt", "r");
while (fgets(line_buffer, sizeof(line_buffer), fp)) {
//printf("%s", line_buffer);
words[i] = line_buffer;
i = i + 1;
}
printf("%d", i);
int j = rand()%8;
int k = (j+1)%8;
printf("%s %s", words[j], words[k]);
fclose(fp);
return 0;
}
input.txt
nematode knowledge
empty bottle
nevertheless
claustrophobia
metamorphosis
acknowledgement
impossibility
never gave up