//引入標頭檔案
#include //檔案寫操作
ofstream out("myfile.txt");
out << "hello_world" << " " << 12 << " "<<'c' << endl;
out.close();
//檔案讀操作
ifstream in("myfile.txt");
string data1;
int data2;
char data3;
in >> data1 >> data2 >> data3;
cout << data1 << " " << data2 << " " << data3 << endl;
in.close();
對於強制異常處理操作,產生異常後,執行會中斷於異常處。
q1:異常涉及關鍵字?
q2:異常的棧展開是怎麼回事?
函式丟擲的異常會沿著函式呼叫鏈逆向丟擲,直至:
1)拋到有異常處理模組,進行異常處理;
2) 拋到主函式顯示異常,系統會呼叫terminate => abort 終止程序執行。
q3:舉一些產生異常的例子,還有怎麼解決?
class test
~test()
private:
int *ptr1;
int *ptr2;
//解決方法:利用智慧型指標在棧上自動釋放的特點
//unique_ptrptr1;
//unique_ptrptr2;
};此時,對test類進行例項化執行時,會丟擲異常產生異常中斷,
並且測試的列印語句只輸出了 "test()" ,說明物件並未析構
trycatch(const bad_alloc& e)//記憶體分配失敗異常捕獲
{}此時,若p2記憶體分配失敗,catch捕獲到該異常產生中斷,系統不會再呼叫delete對之前已分配成功的p1進行記憶體資源釋放。
q4:建構函式和析構函式能不能丟擲異常?
建構函式:不能
例如上述在建構函式中丟擲異常產生異常中斷,物件沒有構造成功,所以物件的析構函式就不會再呼叫了,導致記憶體無法釋放。
python 檔案I O與異常處理
open函式 file object open file name access mode buffering 各個引數的細節如下 1 file name file name變數是乙個包含了你要訪問的檔名稱的字串值。2 access mode access mode決定了開啟檔案的模式 唯讀,寫入,...
C IO操作總結
c 語言本身並不提供輸入輸出的功能,輸入輸出功能由io庫提供,io庫屬於c 標準庫的乙個子集,需要掌握的知識點並不是很多,所以也並不是很難掌握,這裡只是個人學習的一點總結,方便以後隨時複習一下,免得忘記。c 中io操作主要的流操作物件有三個,控制台輸入輸出流 檔案輸入輸出流 還有記憶體輸入輸出流,下...
c day14 異常處理。i o操作
異常程式 錯誤的時候產生的一種錯誤,在其他語言中,如python,在程式執行時如果有錯誤的話就會丟擲異常,控制台上會爆出紅色的錯誤資訊,而c 沒有,只是將退出狀態碼設定為不是0,代表程式不是正常退出,這就使我們追蹤bug有一定的影響 當我們覺得程式可能在哪個 塊上會出現異常的時候可以用try來對異常...