Я хочу прочитать файл и сохранить каждую строку в массиве указателей. Файл имеет 4 строки и каждая строка имеет 4 символа. Я читаю каждую строку с помощью fgets и назначаю строку для моего массива указателей. При назначении я могу написать строку правильно, но после l oop (для чтения файла) результат не верный. NUM_VOWELS равно 4, MAX_SIZE равно 20, и они определены как макросы
Мой главный код:
int main(void)
{
FILE *file_vowels;
int i, line_count = 0;
char *vowels[NUM_VOWELS]; // my array of pointer
char line[MAX_SIZE], *status;
file_vowels = fopen(FILE_VOWELS, "r");
for(
status = fgets(line, MAX_SIZE, file_vowels);
status != NULL;
status = fgets(line, MAX_SIZE, file_vowels)
)
{
if(line[strlen(line) -1] == '\n')
line[strlen(line) -1] = '\0';
vowels[line_count] = line;
printf("vowels[%d] : %s\n", line_count, vowels[line_count]);
line_count++;
}
printf("=====================\n");
for(i = 0; i < NUM_VOWELS; ++i)
printf("vowels[%d] : %s\n", i, vowels[i]);
return 0;
}
Вот результат:
введите описание изображения здесь
Вот пример файла:
введите описание изображения здесь