c語言的連結串列的儲存與讀取,關於C語言中,連結串列資料的檔案儲存和提取。

2022-02-19 22:17:05 字數 2496 閱讀 1294

1樓:匿名使用者

你的檔案時以二進位制開啟的,用文字編輯器看亂碼是正常的。

但是程式裡有幾個問題:

1. typedef struct book //typedef是多餘的

if(fp==null)

開啟檔案出錯後,沒有退出函式,真的出現開啟檔案出錯,程式就有問題了。

3. for(p=head->pnext;p;p=p->pnext) 一開始就把指標指向第二個節點了,第一個節點資訊丟失了。

修改為for(p=head;p->pnext;p=p->pnext)4. fwrite(p,sizeof(book),1,fp); 把pnext指標也存了,這個資料沒有任何意義。

關於c語言中,連結串列資料的檔案儲存和提取。

c語言單向連結串列中如何往檔案裡存入資料和讀取資料?

2樓:匿名使用者

只需要將來檔案標示為二進位制源即可。

struct student stu[256];

//將stu賦值...

file * fd=fopen("c:\\test.bin","wb");//開啟

int i;

for(i=0;i<256;i++)//寫入

//讀取第k個結構體

struct student rstu;

file *fd=fopen("c:\\test.bin","rb");//開啟

fseek(fd,k*sizeof(struct student),seek_set);//定位

讀取

c語言如何從檔案讀入,並存放在連結串列中 20

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樓:定你個

//很簡單,給你個單連結串列的例子,首先定義連結串列成員的結構體

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;

}//這樣這個函式就完成了,你可以寫個主函式,定義一個頭節點,試下

c語言,連結串列,將資料儲存到檔案,再從檔案讀取,幫忙看看。

5樓:匿名使用者

struct txl *fromfile(struct txl *head)

fclose(fp);

p->next=null;

return head;

}1、對於結構體資料的存取可以考慮用"b"方式開啟,並用fwrite()和fread()進行操作。

2、這個**大多情況下可以正常執行,但當刪除的資料是第一個結點時會出問題(致命問題),建議改為有頭結點的連結串列,為連結串列的刪除、排序操作創造必要的條件。

6樓:鍋安東尼

fscanf(fp,"%d\t",j);這一行,的j沒有取地址?

C語言輸出問題,C語言 建立連結串列與輸出連結串列的問題

我在你 的基礎上,稍微改了點,你看下,是否就是輸出你想要的 include main 程式中少了幾個變數的宣告。輸出的不是從0到1000,這是因為你把step的值定為了50的緣故啊。下面是把step改為了10的執行結果 include main 標準c語言庫函式fprintf printf格式字串的...

c語言釋放連結串列記憶體的問題,C語言釋放連結串列記憶體的問題

把連結串列建立的函式貼出來。否則難以判斷。還有lnode 和linklist的型別定義貼出來再請求一次,把lnode 和linklist的型別定義貼出來!從 l next 的用法,我推測linklist是一個結構體指標型別,作用是指向連結串列頭。可是你在malloc的時候,用的sizeof link...

C語言中如何將連結串列儲存為檔案,C語言中如何將一個連結串列儲存為檔案?

第一步 建立檔案 比如說 file fp fopen 第二步 寫一個迴圈,把連結串列的節點一個一個寫進檔案裡。第三部 記得關閉檔案 1 基本思想是通過遍歷的方式儲存 資料,不儲存指標域 還原的時候,根據儲存的方式讀取資料,再建連結串列。2 比如單連結串列,一次遍歷可以得到一個一維陣列,儲存該陣列即可...