繁体   English   中英

从文本文件中读取并将其存储到c中的链接列表中

[英]Read from text file and store them into a linked list in c

我有这些方法:

void loadQueue(nodePtr *start, nodePtr *end) 
{
CreateQueue(&start, &end);
int c;
FILE* file = fopen("C:\\Users\\User\\Desktop\\Queue.txt", "r");
int numbers[50];

int i = 0;
while ((c = fgetc(file)) != EOF)
{   
    numbers[i] = atoi(&c);
    i++;
}


for (int j = 0; j < i ;j++)
{

    Enqueue(j, &start, &end);

}
};

现在我想使用此方法将它们放入队列:

nodePtr CreateNode(int num) {
nodePtr p = (nodePtr)malloc(sizeof(node)); // ALLOCATE MEMORY TO ONE NODE AND SET P TO POINT TO IT

if (p != NULL) // REMEMBER always check if memory was allocated otherwise the behaviousog program is undefined :)
{
    p->item = num;
    p->next = NULL;
}
return p;

}

并在此方法中使用创建节点:

bool Enqueue(int item, nodePtr *start, nodePtr *end) {
nodePtr newitem = CreateNode(item);
if (newitem != NULL)
{
    if (isEmptyQueue(*start))
    {
        *start = newitem;
    }
    else 
    {
        (*end)->next = newitem;

    }

    *end = newitem;
    return true;
}
else
{
    return false;
}

};

有人可以告诉我如何存储在队列中读取的传递的数据(数字),这是我在loadQueue方法中尝试执行的操作。

答案是 :

void loadQueue(nodePtr *start, nodePtr *end) 
{
CreateQueue(start, end);
int c;
FILE* file = fopen("C:\\Users\\User\\Desktop\\Queue.txt", "r");
int numbers[50];

int i = 0;
while ((c = fgetc(file)) != EOF)
{   
    numbers[i] = atoi(&c);
    i++;
}

for (int j = 0; j < i ;j++)
{

    Enqueue(numbers[j], start, end);

}

};

感谢BLUEPIXY

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM