Здравствуйте, сейчас я пишу телефонный справочник на конкурс по программированию, и возникла одна проблема:
Имеется структура:
Code
typedef struct {
int index; // используется для более быстрого поиска
char *name; // ФИО
char *phone; // номер телефона
} element;
и следующий код:
Code
for(i = 0; i < count_element; i++) {
tmp.name = malloc(sizeof(char) * 64);
tmp.phone = malloc(sizeof(char) * 20);
fscanf(db_file, "%d:%s:%s\n", &(tmp.index), tmp.name, tmp.phone);
add(&db, (void*)(&tmp));
}
после пытуаюсь вывести данные следующим способом:
Code
element *e = get_element(&db, 0);
printf("%s - %s\n", e->name, e->phone);
в результате входит примерно это:
Code
Vasiliy:+79871111111 -
а должно:
Code
Vasiliy Kozlov - +79871111111
формат элемента в файле таблицы данных таков:
подскажите пожалуйста, где тут ошибка и каким образом ее можно исправить, уже 2 часа сижу думаю? Скорее всего это при чтении данных из файла(fscanf) но каким образом тогда читать чтобы правильно получалось.