2014-02-24 65 views
0

這是用於類的項目。 (C語言)將整數讀入鏈表

我遇到了需要實現的first function問題。這是一個加載函數,我在其中輸入文件名,在運行時打開用戶給出的文件,並從每行上帶有整數的文件中讀取鏈接列表格式。

我與how to create the linked list卡住,以便它們都實際鏈接,沒有same node in the list being overwritten each time

這是我到目前爲止,我知道這是不正確的。

#include"sortingheaders.h" 
#include <stdio.h> 
#include<stdlib.h> 
#include<time.h> 

/////////////////////////////// 
Node* List_Create(Node * ln) 
{ 
    if(ln==NULL) 
    { 
    ln = malloc(sizeof(Node)); 
     ln->value = 0; 
     ln->next = NULL; 
    } 
    return ln; 
} 

///////////////////////////////////////////////////////////////////////////// 
Node* Load_File(char *Filename) 
{ 
    //Open file 
    FILE* fptr = fopen(Filename, "r"); 
    Node* ln=NULL; 
    Node* temp=NULL; 
    long int *x = 0; 
//Validity Check, return 0 if unsuccesful 
    if(fptr ==NULL) 
    {printf("File didnt open!"); return 0;} 
ln= List_Create(ln); 
    while(!feof(fptr)) 
    { 
     fscanf(fptr,"%li",x); 
     ln->value = *x; 
     ln->next = List_Create(temp); 
     return(ln); 
    } 
+0

至少需要'long int x'和'ln-> value = x'。 – jthill

+0

並且你從循環內部返回,並且你沒有檢查fscanf是否工作。 – jthill

+0

只需在調用List_Create()之前將'temp = NULL'添加到while循環中,這樣節點就不會重疊。爲什麼你把循環中的return()? – moeCake

回答

2

在while循環的第一個中添加這個。

temp = NULL;
+0

謝謝!我想我主要是在那裏...... – Liquidmetal