У меня есть текстовый файл, состоящий из нескольких записей журнала, которые я могу прочитать и сохранить в структуре под названием Журнал. Но теперь моя проблема в том, что я не знаю, как добавить его в связанный список 1 на 1.
, это мой метод вставки
void insertStart (LinkedList *list, Journal *JEntry) {
Node *newNode;
newNode = (Node*)malloc(sizeof(Node));
newNode->data.day = JEntry->day;
newNode->data.month = JEntry->month;
newNode->data.year = JEntry->year;
strcpy(newNode->data.entry, JEntry->entry);
if (list == NULL) {
list->head = newNode;
}
else {
newNode->next = list->head;
list->head = newNode;
}
printf("Inserted Entry = %d/%d/%d :%s\n", newNode->data.day, newNode->data.month, newNode->data.year, newNode->data.entry);
}
, а это
fscanf(fo, "%d", &numEntry);
journal = (Journal *)malloc(numEntry * sizeof(Journal));
for (i=0; i<numEntry;i++) {
fscanf(fo, "%d/%d/%d\n", &journal[i].day, &journal[i].month, &journal[i].year);
fgets(journal[i].entry, SIZE, fo);
}
insertStart(list, journal);
index = atoi(argv[1]);
printf("%d-%02d-%02d: %s\n", journal[index].year, journal[index].month, journal[index].day, journal[index].entry);
free(journal);
fclose(fo);
}
это моя структура
#define SIZE 102
typedef struct {
int day;
int month;
int year;
char entry[SIZE];
} Journal;
typedef struct Node {
Journal data;
struct Node *next;
} Node;
typedef struct {
Node *head;
} LinkedList;
, если я поместил insertStart в for для l oop, да, он вводился 4 раза, но это один и тот же результат снова и снова.
Если я положу его туда, где показано выше, он будет запущен только 1 раз.
Теперь у меня вопрос: как мне сохранить оставшуюся часть записи в связанном списке? спасибо
это содержимое текстового файла
4
12/04/2010
Interview went well I think, though was told to wear shoes.
18/04/2010
Doc advised me to concentrate on something... I forget.
03/05/2010
Was asked today if I was an art exhibit.
19/05/2010
Apparently mudcakes not made of mud, or angry wasps.
первое число 4
- это количество записей на случай, если кто-нибудь спросит.