異常程式**錯誤的時候產生的一種錯誤, 在其他語言中,如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 ="
/ 1.2364
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...