【C語言進階】通訊錄的儲存和載入
儲存功能
這裡是對之前通訊錄的功能進行完善因為在日常使用的通訊錄裡當我們關閉之後再次開啟會繼續顯示出之前所儲存過的聯絡人和資訊。對之前資訊的儲存。
這裡就會用到之前所學習的檔案操作來進行編寫和實現。
FILE* fout = fopen(“contact_book.txt”, “w”);
當我們要儲存是得先建立一個儲存進去的檔案這串程式碼就是建立一個只寫檔案contact_book.txt的檔案。
然後對結構體裡邊的資訊進行儲存。這裡就可以用迴圈將通訊錄跑一邊將其中的資訊。
例如:
addr
name
tel
age
來進行儲存,儲存在之前建立的contact_book.txt當中。
載入功能
那麼載入功能也就可以理解為當我們在換手機SIM卡的時候
將之前檔案當中的資訊傳輸給此時的通訊錄當中將這樣的結果成為載入Load功能。
FILE* fin = fopen(“contact_book.txt”, “r”);
這裡對這個檔案進行只讀的操作。
將我們之前的定義的結構體資訊匯入就相當於去建立新的聯絡人的感覺。這裡有可能進行的是多組輸入我們就可以用之前學的EOF作為迴圈的結束條件(文字檔案)。然後將檔案中的東西載入到pcb當中也就是ADD進我們的通訊錄系統。這樣就是實現了載入。
程式碼實現
void ContactBookSave(ContactBook* pcb)//儲存
{
FILE* fout = fopen("contact_book.txt", "w");
for (int i = 0; i < pcb->size; ++i)
{
fprintf(fout, "%s %d %s %s\n", pcb->contactArray[i].addr, pcb->contactArray[i].age, pcb->contactArray[i].name, pcb->contactArray[i].tel);
}
fclose(fout);
}
void ContactBookLoad(ContactBook* pcb)//載入
{
FILE* fin = fopen("contact_book.txt", "r");
Contact ct;
int ret = fscanf(fin, "%s %d %s %s\n", ct.addr, &ct.age, ct.name, ct.tel);
while (ret != EOF)
{
ContactAdd(pcb, ct);
ret = fscanf(fin, "%s %d %s %s\n", ct.addr, &ct.age, ct.name, ct.tel);
}
fclose(fin);
}
註釋:之前通訊錄的後續。
相關文章
- 通訊錄的c語言程式編輯C語言
- 教你C語言實現通訊錄的詳細程式碼C語言
- [C語言] 浮點型儲存C語言
- C語言進階[2]:字串常量C語言字串
- C語言實現TCP通訊C語言TCP
- C++U7-06-圖的進階儲存C++
- spacy儲存和載入模型模型
- CoreData:使用CoreData完成一個通訊錄儲存
- 【C語言】整型在記憶體中的儲存C語言記憶體
- 前端通訊進階前端
- 載入和儲存properties檔案
- 易語言進階
- C語言_瞭解一下C語言中的四種儲存類別C語言
- C語言進階——基本資料型別01C語言資料型別
- C語言學習參考(基礎&進階)C語言
- Flutter入門進階之旅(十二)Flutter 資料儲存Flutter
- 分散式入門(一)- 通訊原語和通訊庫分散式
- 高階C語言1C語言
- 高階C語言2C語言
- 高階C語言7C語言
- Swift實踐:使用CoreData儲存多種資料類的通訊錄Swift
- Android進階:一、日誌列印和儲存策略Android
- tensorflow模型持久化儲存和載入模型持久化
- HACCP原理——記錄的儲存(轉載)
- Go語言輕鬆進階Go
- c語言入門C語言
- c語言實現階乘C語言
- Android從外部儲存裝置中儲存和載入本地檔案Android
- C語言巨集的高階應用C語言
- Gartner:浪潮儲存進入分散式儲存前三分散式
- 在 Python 中儲存和載入機器學習模型Python機器學習模型
- Pytorch | Tutorial-07 儲存和載入模型PyTorch模型
- MYSQL innodb buffer 狀態資料的儲存和載入MySql
- 入門,進階go語言優秀書籍推薦Go
- 詳述C++語言的VxD與外界通訊的所有介面 (轉)C++
- C#通訊錄設計C#
- C語言小白記錄自己的錯題和總結C語言
- c語言 5.9.2下載C語言