c語言鍊錶檔案讀取問題,c語言鍊錶檔案讀取問題

時間 2022-03-21 01:59:01

1樓:匿名使用者

問題就在於你存這個結構體的時候,把struct std *pnext也存進去了,但這個pnext下次讀出來的時候可能是乙個無效的位址,沒看到insert函式是如何實現的,是否對這個值進行了處理,否則用這個指標做為鏈的話肯定出錯。

2樓:相思丶貓

p0指向鍊錶中最後乙個節點,讀到檔案結尾時,feof返回1,於是執行if語句,此時free(p0),豈不是把鍊錶最後乙個節點刪掉了,導致鍊錶最後不指向null,被free的節點位址已經不能訪問,但你卻訪問了,所以程式會出錯。

3樓:匿名使用者

//很簡單,給個單鏈表的例子,首先定義鍊錶成員的結構體 ;

struct filetext;

//讀取檔案,並插入進鍊表的函式,filename為要讀取的檔名,head為鍊錶的頭節點,函式返回插入新節點後鍊錶的頭節點;

struct filetext * readfile(char * filename,struct filetext * head)

//然後開始讀取檔案,放到new的buf中

if(fread(new->buf,bufsize,1,fp)<1)

fclose(fp);

//檔案讀取完後,進行鍊錶操作

if(!head)//如果傳進來的head是個空指標,那麼新指標就作為頭節點返回

while(p->next) p = p->next;//把p移動到最後乙個節點

p->next = new;//p的下乙個節點為new

new->next = null;//new的下乙個節點為空

return head;

}//這樣這個函式就完成了,可以寫個主函式,定義乙個頭節點,完成。

4樓:匿名使用者

那麼你就把float改成double,因為系統一般把float換成double,如果你的編譯器給你這麼做了,那麼你的資料從score後就是錯的,可能是你的結構體錯了,我沒看到具體程式不好說

c語言如何讀取檔案,C語言如何讀取檔案?

蒯懿靖迎夏 乙個c語言讀寫檔案程式 include stdio.h include main fclose fp1 關閉檔案a.txt,有開啟就要有關閉fclose fp2 關閉檔案b.txt 乙個檔案流指標對應乙個開啟的檔案,因為你要同時操作兩個檔案,所以要用兩個檔案流指標 就像你要同時操作兩個箱...

c語言中煉表的儲存 讀取 修改問題

1 鍊錶存到檔案中去後,再取出來是不是要再次對各個元素進行鍊錶的關聯 就是下乙個元素位址賦予前乙個元素中的位址變數中 有沒有更簡單的方法讓其自動恢復原先的鍊錶關係?答 鍊錶的關係的卻需要重新建立,沒有別的方法,這裡只需要重新設定,因為鍊錶是儲存在記憶體中的,每次malloc出來的指標位址不一致,無法...

c語言煉表頭結點問題,C語言 煉表頭結點問題!!

頭節點,實際應用的時候,不僅起標誌性作用,還可以記錄一些鍊錶的相關資訊,比如鍊錶當前長度,最大長度等等,便於操作和控制。比如 鍊錶啟用開關,可以做刪除整條鍊錶的控制。游標,便於插入和刪除資料。鍊錶資料區提示資訊,提示此煉表是存放那些資料的,格式如何。帶頭結點麼,則對其它的每個結點,都是一樣的,主要有...

c語言 讀取檔案到記憶體,C語言 讀取檔案到記憶體

用c語言實現將乙個檔案讀入記憶體中 用c語言實現將檔案讀入記憶體中 include include int filelength file fp char readfile char path int main void char readfile char path length fileleng...

c語言讀取檔案資料,C語言讀取檔案資料

先用getline或fgets讀取資料到乙個字串中,這個串定義的長一點,保證夠用就行。舉例 char str 1024 fgets str sizeof str fp fp開啟的檔案指標。然後呼叫for迴圈去讀取串的的資料,假設你的分隔符是空格,遍歷str,遇到空格就得到乙個資料,然後繼續遍歷,直到...