Я создал программу на C, где я должен читать текстовый файл и назначать его структуре через int и указатели строк.Значения в индексе заменяются на каждую итерацию
Вот фрагмент кода моей программы:
i = 0;
while(!feof(phoneBook)) {
fscanf(phoneBook, "%d|%s\n", &num, fname);
info[i].phone_num = num;
printf("%d\n", info[i].phone_num);
info[i].first_name = fname;
printf("%s\n", info[i].first_name);
i++;
ctr++;
printf("\nfirst:%s", info[0].first_name);
printf("\nsecond:%s", info[1].first_name);
printf("\nthird:%s\n\n", info[2].first_name);
}
На первой итерации, он присваивает первую строку в 0 индекса информации. На второй итерации, он присваивает вторую строку с индексом 1 и заменяет индекс 0.
Текстовый файл содержит только следующие строки (для тестирования): первого второго третьего
Вот результат :
//first iteration
first:first
second: <null>
third: <null>
//second
first:second
second: second
third: <null>
//third
first:third
second: third
third: third
Кстати, я объявил свою структуру как:
typedef struct{
int id;
char *first_name;
char *last_name;
int phone_num;
} phone_det;
, где phoneBook был объявлен под типом datatype phone_det.
Любая форма помощи будет принята с благодарностью! Я только начал использовать C, и я все еще немного запутался с указателями. :(
Как выглядит ваша структура информации? И как это объявлено? –
Не используйте 'feof()' like this; это дает вам неправильный ответ. В частности, вы должны проверить значение из 'fscanf()', потому что он расскажет вам об EOF до 'feof()' can. –
Обновите свой вопрос; не добавляйте структуру в качестве комментария. –