我在这里真的很近。
这会读取文件并使用 gdb 我可以看到文本文件中的单词进入链接列表。
但是,当我打印我的链表(代码的底部)时,整个链表似乎只包含文件中的最后一个单词,因为文件中有很多条目。
bool load(const char* dictionary) {
// open dictionary
FILE* file = fopen(dictionary, "r");
if (file == NULL)
return false;
char buf[LENGTH];
//read the contents of the file and write to linked list
while (!feof(file)) {
fscanf(file,"%s", buf);
// try to instantiate node
node* newptr = malloc(sizeof(node));
if (newptr == NULL) {
return false;
}
// initialize node
newptr->next = NULL;
// add new word to linked list
newptr->dictword = buf;
//move node to start of linked list
newptr->next = first;
first = newptr;
}
fclose(file);
// traverse and print list.
node* ptr = first;
while (ptr != NULL) {
printf("%s\n", ptr->dictword);
ptr = ptr->next;
}
return true;
}