課程設計時需要構建乙個商品表,我使用的是乙個鍊錶來儲存乙個個商品,那麼在過程中需要將資訊儲存進檔案,再從檔案讀取到記憶體的鍊錶中。
思路不是很難,但是還是卡在了一些細節上。
細節1:儲存1~n個商品時,在最後乙個商品及n商品時,在檔案末尾會多乙個換行符,這個換行符會影響到檔案的讀寫操作。
細節2:鍊錶的每個商品資訊在讀取時都需要動態分配記憶體,以及一些指標的操作問題。(平時只注重於演算法的學習了,對於鍊錶不熟悉吃的虧,在此感謝隊友jameslee的debug)
細節3:對於類的儲存,我想到的是用二進位制而不是一般儲存,因為二進位制是按照位元組來儲存的,方便檔案讀寫,當然檔案儲存資訊是乙個過渡,學完資料庫就方便了。
檔案寫入商品資訊:
#include #include #include #include class goods
void showdata()//定義輸出函式
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 檔案讀寫
出處 標籤 c 資料結構 課程設計時需要構建乙個商品表,我使用的是乙個鍊錶來儲存乙個個商品,那麼在過程中需要將資訊儲存進檔案,再從檔案讀取到記憶體的鍊錶中。思路不是很難,但是還是卡在了一些細節上。細節1 儲存1 n個商品時,在最後乙個商品及n商品時,在檔案末尾會多乙個換行符,這個換行符會影響到檔案的...
關於檔案讀寫(C和C
一 c語言版 在c語言中stdio.h標頭檔案裡包含了檔案讀寫操作。主要是通過file 指標進行檔案操作。通過fscanf和fprintf對檔案進行格式化的讀寫,或通過fread 和 fwrite對檔案進行二進位制讀寫。在資料量比較大時,一般建議用後者,因為格式化在輸入時需要將ascii碼轉為二進位...
關於C 的鍊錶操作
在學c語言的時候早已把鍊錶操作爛熟於心 而在學c 的時候,學會它的鍊錶操作也是必須的。其實,他們的操作大同小異 僅僅是動態記憶體分配的命令上的區別。c語言的動態記憶體分配以庫函式的形式包含在stdlib.h的標頭檔案中 他們是malloc和free 沒錯,他們是天生的一對 而為了更加方便鍊錶這種應用...