Я пытаюсь создать программу, которая считывает в текстовом файле в следующем формате:Моя Linked Список программ не будет работать
Smith, John
Johnson, Harry
Clark, David
(Это может продолжаться бесконечно, и там не нужно быть пустой строкой между каждым именем, которое я просто написал для этого способа для ясности)
Каждая строка текстового файла содержит: last name
, first name
. Связанный список должен хранить каждое имя и фамилию в качестве узла имени. Я полагаю, что моя общая архитектура должна работать, однако, по мере выполнения программы, кажется, что переменные, такие как pCurrent
и pHead
, перегружены без переустановки. Я остался с перепутанным Linked List, и я никогда не видел ничего подобного. Может ли кто-нибудь обнаружить недостаток в моей архитектуре или что-то еще, что заставляет эту программу работать не так, как ожидалось. Благодаря
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
struct nameNode {
char* first;
char* last;
struct nameNode* pNext;
struct nameNode* pPrev;
};
struct nameNode* pHead, *pLast;
char firstName[50], lastName[50];
void insert_end(char* first, char* last) {
struct nameNode* var = NULL, *temp = NULL;
var = (struct nameNode*)malloc(sizeof(struct nameNode));
var->first = first;
var->last = last;
if (pHead == NULL) {
pHead = var;
pHead->pPrev = NULL;
pHead->pNext = NULL;
pLast = pHead;
} else {
pLast = pHead;
while (pLast != NULL) {
temp = pLast;
pLast = pLast->pNext;
}
pLast = var;
temp->pNext = pLast;
pLast->pPrev = temp;
pLast->pNext = NULL;
printf("Phead is %s\n", pHead);
}
}
int main() {
char file[100];
printf("Enter input file ");
scanf("%s", file);
FILE* in_file = fopen(file, "r");
while (fscanf(in_file, "%s %s", lastName, firstName) != EOF) {
insert_end(lastName, firstName);
}
}
Этот вопрос не соответствует теме, поскольку он не создает пример минимального, полного и проверяемого. – haccks
Скопируйте эти три имени в текстовый файл и затем напишите адрес при появлении запроса и просмотрите связанный список. Это полный пример, верно? Также я могу добавить оператор печати, чтобы сообщить программисту, что pHead соответствует каждой итерации цикла while, если это поможет проблеме стать более очевидной? – user3451026