簡體   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