c day14 異常處理。i o操作

2021-10-05 20:40:41 字數 2408 閱讀 6046

異常程式**錯誤的時候產生的一種錯誤, 在其他語言中,如python, 在程式執行時如果有錯誤的話就會丟擲異常,控制台上會爆出紅色的錯誤資訊,而c++沒有, 只是將退出狀態碼設定為不是0,代表程式不是正常退出,這就使我們追蹤bug有一定的影響

當我們覺得程式可能在哪個**塊上會出現異常的時候可以用try來對異常進行捕獲, 防止該錯誤影響到程式的執行,

try

catch

(exception err)

catch(.

..)

exception是所有異常的父類,可以使用該類來接收異常, 也可以使用..., … 可以接收所有異常,

throw可以使用這個關鍵字給程式丟擲異常,跳轉程式執行,提醒開發人員,如

int a =10;

int b =0;

if(b ==0)

int c = a / b;

用在函式上,說明這個函式不會丟擲異常,如果出現異常了,編譯器也執行通過編譯

輸出輸出布林資料

在c/c++中,在對bool型別的資料做輸出的時候,列印的是 0 、1 ,如果希望看到的是 true 和 false ,那麼可以使用 boolalpha 操作符。

bool flag = false;

cout <<

"flag的值是:"

<< flag <<

" 新增操作符後:"

<

cout <<

"十進位制:"

<< dec <<

9<< endl;

9 cout <<

"八進位制:"

<< oct <<

9<< endl;

011 cout <<

"十六進製制:"

<< hex <<

10<< endl;

//0xa

setprecision輸 出浮點數,選擇輸出小數字,

double a =

1.23645785578852589

; cout <<

setprecision(5

)<<

" a ="

setprecision 可以控制輸出的小數字, 如果使用預設的輸出的話,最多隻會輸出6位數字

檔案操作有三種常用類, 讀,寫, 讀寫,

ofstream 表示輸出檔案流,用於建立檔案並向檔案寫入資訊。

ifstream 表示輸入檔案流,用於從檔案讀取資訊。

fstream 可讀可寫

fstream file

;// 開啟當前目錄先的test.txt 以唯讀的方式

is_open()在開啟檔案後可以通過該方法判斷是否成功開啟了該檔案, 如果成功,則為true,反之

獲取檔案內容,getline()

getline 可以獲取檔案的一行內容, 在該函式中可以接收兩個引數,第乙個是開啟檔案的物件, 第二個是要賦值的變數, 如:

string content;

fstream file

;getline

(file, content)

它會獲取一行內容賦值給 content 變數, 如何獲取全部內容呢,可以使用while 迴圈來迴圈獲取

string content;

fstream file

;while

(getline

(file, content)

)

這樣,這樣迴圈獲取內容會將資料替換掉, 到最後content 變數 只留下最後一行的資料

getline 也可以接受三個引數,

string test;

getline

(f , line)

stringstream ss;

ss.clear()

; ss << line;

while

(getline

(ss, test,

'#')

)

\這種情況是接收 字元流, 在c++中沒有 split 可以直接操作字串, 在c++中使用字元流才能對字串進行切割,

將 line 中的字元內容 過載到 stringstream 變數 ss 中, 然後就可以使用getline 對該條內容通過 『#』 來進行切割了,

寫入

fstream file
通過 << 運算子可以將後面的資料新增到檔案中

C day14 學習筆記

1 對檔案的分類 1 文字檔案 每個位元組都是有效的可顯示的ascii碼 getline 2 二進位制檔案 位元組是連續的,不能用vi more檢視檔案內容,read按位元組數讀取 write 100 是整數的100,佔4個位元組 100 是字元陣列,佔3個位元組 2 異常 1 人為錯誤 由於程式設...

IO之異常處理

在使用io流時,會遇到很多方法會丟擲異常。對於這些異常,我們不應該簡單的將其丟擲,而是應該進行一些處理。public class test 這個簡單的程式中的三行 用於將一句字串寫入檔案中然後關閉資源。但是這三句話都會丟擲異常。所以將這三行 放入try catch 中。因為這三行 有緊密的聯絡,所以...

IO異常的處理

之前的入門練習,我們一直把異常丟擲,而實際開發中並不能這樣處理,建議使用try.catch.finally 塊,處理異常部分 演示 public class handleexception1 catch ioexception e finally catch ioexception e 還可以使用j...