關於鍊錶的C 檔案讀寫

2021-08-01 06:26:10 字數 1440 閱讀 8779

出處

標籤: c++

資料結構

課程設計時需要構建乙個商品表,我使用的是乙個鍊錶來儲存乙個個商品,那麼在過程中需要將資訊儲存進檔案,再從檔案讀取到記憶體的鍊錶中。

思路不是很難,但是還是卡在了一些細節上。

細節1:儲存1~n個商品時,在最後乙個商品及n商品時,在檔案末尾會多乙個換行符,這個換行符會影響到檔案的讀寫操作。

細節2:鍊錶的每個商品資訊在讀取時都需要動態分配記憶體,以及一些指標的操作問題。(平時只注重於演算法的學習了,對於鍊錶不熟悉吃的虧,在此感謝隊友jameslee的debug)

細節3:對於類的儲存,我想到的是用二進位制而不是一般儲存,因為二進位制是按照位元組來儲存的,方便檔案讀寫,當然檔案儲存資訊是乙個過渡,學完資料庫就方便了。

檔案寫入商品資訊:

[cpp]view plain

copy

print?

#include 

#include 

#include 

#include 

class goods  

void showdata()//定義輸出函式

};  

int main ()   

return 0;  

}  

#include #include #include #include class goods

void showdata()//定義輸出函式

void showdata()//定義輸出函式

};  

int main()   

goods *p2;  

while (!in.eof())  

in.read((char*)&(*p),sizeof(*p));  

p->next=null;  

if(in.eof())  

//目的是清除最後一次重複計入的商品,這個操作和\n以及eof有關

}  p->next=null;  

p=goods;  

while(p)  

//列印鍊錶

return 0;  

}  

#include #include #include #include class goods

void showdata()//定義輸出函式

in.read((char*)&(*p),sizeof(*p));

p->next=null;

if(in.eof())

//目的是清除最後一次重複計入的商品,這個操作和\n以及eof有關

}p->next=null;

p=goods;

while(p)

//列印鍊錶

return 0;

}

商品表及鍊錶,所選取的資料結構和實際需要應該還是很貼切的。

關於鍊錶的C 檔案讀寫

課程設計時需要構建乙個商品表,我使用的是乙個鍊錶來儲存乙個個商品,那麼在過程中需要將資訊儲存進檔案,再從檔案讀取到記憶體的鍊錶中。思路不是很難,但是還是卡在了一些細節上。細節1 儲存1 n個商品時,在最後乙個商品及n商品時,在檔案末尾會多乙個換行符,這個換行符會影響到檔案的讀寫操作。細節2 鍊錶的每...

關於檔案讀寫(C和C

一 c語言版 在c語言中stdio.h標頭檔案裡包含了檔案讀寫操作。主要是通過file 指標進行檔案操作。通過fscanf和fprintf對檔案進行格式化的讀寫,或通過fread 和 fwrite對檔案進行二進位制讀寫。在資料量比較大時,一般建議用後者,因為格式化在輸入時需要將ascii碼轉為二進位...

關於C 的鍊錶操作

在學c語言的時候早已把鍊錶操作爛熟於心 而在學c 的時候,學會它的鍊錶操作也是必須的。其實,他們的操作大同小異 僅僅是動態記憶體分配的命令上的區別。c語言的動態記憶體分配以庫函式的形式包含在stdlib.h的標頭檔案中 他們是malloc和free 沒錯,他們是天生的一對 而為了更加方便鍊錶這種應用...