Делаю сейчас программу для формирования и обработки хэш-таблицы. Связка такая: ключ - цифровой код, а данные - ФИО. Типа такого: "Добрый.А.Ю. 8347847232". Данные записаны в файл в одной строке через пробел. Но если в самом конце файла будет переход на строку или лишний пробел, то последняя запись дублируется. Вероятно это из-за вот этого:
while (!feof(ftxt))
.
Не знаю, чем это можно заменить.
Фрагмент кода:
int itemIdx = 0;
INFO* item = NULL;
HTAB* table = NewHTAB(30);
char name[MAX_NAME], key[LEN];
int choice = 0, c;
system("chcp 1251");
FILE* ftxt;
if (!(ftxt = fopen("RGR_2_AP.txt", "r"))) {
puts("\n Файл с текстом не найден...\n");
return 0;
}
while (!feof(ftxt)) {
fscanf(ftxt, "%s%s", name, key);
Insert(table, key, name);
}
fclose(ftxt);
printf("\n");
printf(" Индекс\t| Ключ\t| Ф.И.О\t |\n");
printf("-------------------------------------------------\n");
Display(table);