對檔案進行讀寫操作
讀檔案operator>>
int get();
istream& get(int);
istream & get(char*,int n, char deli )
istream& getline(char * ,int n);
get vs getline
get 和getline 最大的區別就是,get 遇到界定符時,停止執行,但並不從流中提取界
定符,再次呼叫遇到同乙個界定符,函式將立即返回,不會提取輸入。getline 則不同,它
將從輸入流中提供界定符,但傷然不會把它放到緩衝區中。
寫檔案operator<<
osream put(char)
關閉檔案
呼叫成員函式close()來關閉檔案
實現檔案拷貝
#include 「pch.h」
#include
#include
using namespace std;
int main()
fstream ofs(「dest.txt」, ios::out | ios::trunc);
if (!ofs)
// int data;
// while(ifs>>data,!ifs.eof()) // 只能以空格table 回車作為標誌
// {
// cout<<「x」《讀寫二進位制檔案
ostream & write(const char * buffer,int len);
istream & read(char * buff, int len);
案例隨機讀寫函式
c++異常
c語言異常處理
方法:語言中錯誤的處理,通常採用返回值的方式或是置位全域性變數的方式
c++異常處理機制
作用:異常的引發和異常的處理不必在同乙個函式
異常的基本語法
trytry塊可以巢狀
程式按順序尋找匹配的異常處理器,丟擲的異常將被第乙個型別符合的異常處理器捕獲
如果內層try塊後面沒有找到合適的異常處理器,該異常向外傳播,到外層try塊後面的catch塊中尋找
沒有**獲的異常將呼叫terminate函式,terminate函式預設呼叫abort終止程式的執行
可以使用set_terminate函式指定terminate函式將呼叫的函式
catch
乙個異常處理器一般只捕捉一種型別的異常
異常處理器的引數型別和丟擲異常的型別相同
…表示可以捕獲任何異常
throw
可以丟擲內建型別異常也可以拋出自定義型別異常
throw丟擲乙個類物件會呼叫拷貝建構函式
異常被丟擲後,從進入try塊起,到異常被拋擲前,這期間在棧上的構造的所有物件,都會被自動析構
機制1) 若有異常則通過throw操作建立乙個異常物件並拋擲。
2) 將可能丟擲異常的程式段嵌在try塊之中。控制通過正常的順序執行到達try語句,然後執行try塊內的保護段。
3) 如果在保護段執行期間沒有引起異常,那麼跟在try塊後的catch子句就不執行。程式從try塊後跟隨的最後乙個catch子句後面的語句繼續執行下去。
4) catch子句按其在try塊後出現的順序被檢查。匹配的catch子句將捕獲並處理異常(或繼續拋擲異常)。
5) 如果匹配的處理器未找到,則執行函式terminate將被自動呼叫,其預設功能是呼叫abort終止程式。
6)處理不了的異常,可以在catch的最後乙個分支,使用throw語法,向上扔。
7)異常機制與函式機制互不干涉,但捕捉的方式是基於型別匹配。捕捉相當於函式返回型別的匹配,而不是函式引數的匹配,所以捕捉不用考慮乙個拋擲中的多種資料型別匹配問題
8)異常捕捉嚴格按照型別匹配
異常捕捉的型別匹配之苛刻程度可以和模板的型別匹配媲美,它不允許相容型別的隱式轉換,比如,拋擲char型別用int型就捕捉不到
建構函式沒有返回型別,無法通過返回值來報告執行狀態,所以只通過一種非函式機制的途徑,即異常機制,來解決建構函式的出錯問題。
異常介面宣告
1)為了加強程式的可讀性,可以在函式宣告中列出可能丟擲的所有異常型別,例如:
void func() throw (a, b, c , d); //這個函式func()能夠且只能丟擲型別a b c d及其子型別的異常。
2)如果在函式宣告中沒有包含異常介面宣告,則次函式可以拋擲任何型別的異常,例如:
void func();
3)乙個不拋擲任何型別異常的函式可以宣告為:
void func() throw();
4) 如果乙個函式丟擲了它的異常介面宣告所不允許丟擲的異常,unexpected函式會被呼叫,該函式預設行為呼叫terminate函式中止程式。
嵌入式c 軟體開發筆記第三講
c 繼承 重用 組合 has a a類裡含有b類的成員 繼承 is a class 派生類名 繼承方式 基類名 繼承是使用已經編寫好的類來建立新類,新的類具有原有類的所有屬性和操作,也可以在友元類的基礎上做一些修改和增補。新類稱為派生類或子類,原有類稱為基類或父類 派生類是基類的具體化 繼承規則 公...
嵌入式軟體開發流程
1 嵌入式軟體開發流程在整個流程中,使用者首先需要建立工程並對工程做初步的配置,包括配置處理器和配置除錯裝置。編輯工程檔案,包括自己編寫的彙編和c語言源程式,還有工程編 譯時需要編寫的鏈結指令碼檔案,除錯過程中需要編寫儲存區映像檔案和命令指令碼檔案,以及上電復位時的程式執行入口的啟動程式檔案。對後四...
嵌入式軟體開發之我見
自己從事嵌入式系統開發有好多年了,在此想與大家分享我對於嵌入式開發的一點心得與體會。先大致說一說我的工作經歷。97年畢業後做了兩年的電氣與電子設計與開發,這一時期,我做過電路原理圖的設計和pcb板的設計。從99年開始,我進入了軟體行業。第一次做嵌入式開發是在2000年,在隨後的六年多的時間裡,我差不...