diff --git a/bookNode b/bookNode index 1d2053b..81fa4aa 100755 Binary files a/bookNode and b/bookNode differ diff --git a/data/books.txt b/data/books.txt index 16a8284..4eb15fe 100644 --- a/data/books.txt +++ b/data/books.txt @@ -1,6 +1,9 @@ -My First Book -Sambo Chea -892-928-990 -My Second Book -Chea Sambo -939-330-332 \ No newline at end of file +My Third Book +Zero 1 +000-000-111 +My Fouth Book +1 Zero +111-000-000 +My Fifth Book +2 Zero +222-000-000 \ No newline at end of file diff --git a/tests/bookNode.c b/tests/bookNode.c index afdf6d8..1d86278 100644 --- a/tests/bookNode.c +++ b/tests/bookNode.c @@ -17,14 +17,14 @@ BOOK *head; void add_book(char *title, char *author, char *isbn); void display(); int count(); -void save_book_data(struct book *selection); +void save_book_data(struct book *data); int main() { head = NULL; add_book("My Third Book", "Zero 1", "000-000-111"); add_book("My Fouth Book", "1 Zero", "111-000-000"); - add_book("My Fouth Book", "1 Zero", "111-000-000"); + add_book("My Fifth Book", "2 Zero", "222-000-000"); int i; file = fopen("./data/books.txt", "a+"); @@ -35,42 +35,65 @@ int main() return EXIT_FAILURE; } - char title[20]; - char author[20]; - char isbn[20]; + // char title[20]; + // char author[20]; + // char isbn[20]; - while (!feof(file)) + // while (!feof(file)) + // { + // fgets(title, 20, file); + // fgets(author, 20, file); + // fgets(isbn, 20, file); + + // // Removes newline characters from the ends of the names + // i = 0; + + // while (title[i] != '\n') + // { + // i++; + // } + + // title[i] = '\0'; + + // i = 0; + + // while (author[i] != '\n') + // { + // i++; + // } + + // author[i] = '\0'; + + // // Adds the entry from the strings with the file data in them + // add_book(title, author, isbn); + // } + + BOOK *temp; + temp = head; + + fputs(temp->title, file); + fputs("\n", file); + fputs(temp->author, file); + fputs("\n", file); + fputs(temp->isbn, file); + + while (temp->next != NULL) { - fgets(title, 20, file); - fgets(author, 20, file); - fgets(isbn, 20, file); - - // Removes newline characters from the ends of the names - i = 0; - - while (title[i] != '\n') - { - i++; - } - - title[i] = '\0'; - - i = 0; - - while (author[i] != '\n') - { - i++; - } - - author[i] = '\0'; - - // Adds the entry from the strings with the file data in them - add_book(title, author, isbn); + temp = temp->next; + fputs("\n", file); + fputs(temp->title, file); + fputs("\n", file); + fputs(temp->author, file); + fputs("\n", file); + fputs(temp->isbn, file); } // close the file fclose(file); + // save book data + // save_book_data(head); + // display(); int countEntries = count(); @@ -81,16 +104,17 @@ int main() void add_book(char *title, char *author, char *isbn) { - struct book *tempNode, *iterator; - tempNode = (struct book *)malloc(sizeof(struct book)); - tempNode->title = title; - tempNode->author = author; - tempNode->isbn = isbn; + struct book *temp, *iterator; + temp = (struct book *)malloc(sizeof(struct book)); + temp->title = title; + temp->author = author; + temp->isbn = isbn; + // ref iterator = head; if (head == NULL) { - head = tempNode; + head = temp; head->next = NULL; } else @@ -99,8 +123,8 @@ void add_book(char *title, char *author, char *isbn) { iterator = iterator->next; } - tempNode->next = NULL; - iterator->next = tempNode; + temp->next = NULL; + iterator->next = temp; } } @@ -109,7 +133,8 @@ int count() int n = 1; BOOK *temp; temp = head; - if (head == NULL) { + if (head == NULL) + { return 0; } @@ -120,4 +145,39 @@ int count() } return n; +} + +void save_book_data(struct book *data) +{ + file = fopen("./data/books.txt", "a+"); + + if (file == NULL) + { + printf("Error: addressbook.dat could not be opened.\n"); + exit(EXIT_FAILURE); + } + + BOOK *temp; + temp = data; + + if (temp == NULL) + { + return; + } + + fputs(temp->title, file); + fputs(temp->author, file); + fputs(temp->isbn, file); + + while (temp->next != NULL) + { + temp = temp->next; + + fputs(temp->title, file); + fputs(temp->author, file); + fputs(temp->isbn, file); + } + + fflush(file); + fclose(file); } \ No newline at end of file