1 / 23

Chapter 7-2

Chapter 7-2. 檔案管道. 為何要使用檔案 (files) ?. 之前談過,當宣告單一變數來輸入全班成績時 (chi,eng,math,avg,sum…) ,前一位同學的成績將被後一位同學的成績給覆蓋掉,無法查詢之前的個人成績 使用陣列後,查詢之前的成績已非難事,然而,無論是陣列或單一變數,都將面臨關機後資料即流失的命運 倘若能將資料以檔案型式儲存在磁碟中,即使關機也不怕資料流失. 如何將資料存入與讀出磁碟?. C++ 提供檔案輸入/輸出的類別,稱為檔案管道函數庫 fstream.h

jarah
Download Presentation

Chapter 7-2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 7-2 檔案管道

  2. 為何要使用檔案(files)? • 之前談過,當宣告單一變數來輸入全班成績時(chi,eng,math,avg,sum…),前一位同學的成績將被後一位同學的成績給覆蓋掉,無法查詢之前的個人成績 • 使用陣列後,查詢之前的成績已非難事,然而,無論是陣列或單一變數,都將面臨關機後資料即流失的命運 • 倘若能將資料以檔案型式儲存在磁碟中,即使關機也不怕資料流失

  3. 如何將資料存入與讀出磁碟? • C++提供檔案輸入/輸出的類別,稱為檔案管道函數庫 • fstream.h • fstream.h包含了iostream.h,因此,程式中含括了fstream.h後,無須再含括iostream.h • 類別 • ofstream支援檔案寫入 • ifstream支援檔案讀出 • fstream支援檔案寫入及讀出

  4. 字串的輸入 • 將字串寫入檔案中 • 宣告方式 ofstream 物件名稱(檔案名稱); ofstream outf("datafile.txt"); 物件名稱可以自訂,在程式中配合插入運算子(<<)使用

  5. 字串的輸入 (續) • 物件名稱的用法與cout類似 outf<<"Hello !"<<endl<<"Good-bye";

  6. 字串的輸出 • 將字串自檔案中讀出 • 宣告方式 • 物件名稱的用法與cin相類似 ifstream 物件名稱(檔案名稱); ifstream inf("datafile.txt"); 在程式中配合擷取 運算子(>>)使用 char buffer[80]; inf>>buffer;

  7. 字串的輸出(續) //假如檔案開啟失敗 為何分成這麼多列? 因為,擷取運算子會將空白字元當作結束字元之故

  8. 字串的輸出(續) • 若要正常顯示於螢幕上,可使用getline()函數

  9. 檔案名稱一定要固定嗎?

  10. 寫一個簡單的通訊錄

  11. 寫一個簡單的通訊錄(續)

  12. 寫一個簡單的通訊錄(續)

  13. 字元的輸入 • 將指定字元輸出至檔案的方法 • 物件名稱<<ch; • 物件名稱.put(ch);

  14. 字元的輸入(續)

  15. 字元輸出 • 自開啟的檔案中一次讀入一個字元給指定的字元變數的方法 • 物件名稱.get(ch); • ch=inf.get();

  16. 字元輸出(續)

  17. atoi(),itoa(),atol(),ltoa(),atof() • stdlib.h • atoi()文字轉換為整數 • atol()文字轉換為長整數 • atof()文字轉換為浮點數 • itoa()整數轉換為字串 • ltoa()長整數轉換為字串

  18. atoi(字串變數/字串)

  19. atol(字串變數/字串)

  20. atof(字串變數/字串)

  21. itoa(整數變數,字串變數,進位)

  22. ltoa(整數變數,字串變數,進位)

  23. Homework • 以檔案儲存M1及M2兩個二維陣列,寫一程式讀出此檔案中的陣列,並進行陣列相加(M1+M2),將結果存入M3陣列中,並於螢幕顯示其結果

More Related