更新中:
1.錯誤處理
重要函式:
bool cin.good();
bool cin.bad();
bool cin.fail();
bool cin.eof();
這四個函式用來測試相應的標誌位是否為1,具體如下:
failbit | eofbit | badbit
所以,ios::failbit=100b
ios::eofbit=010b
ios::badbit=001b
ios::goodbit=000b
如果想獲得對應標誌位的值,可以用標誌變數&標誌位,獲取標誌變數的函式為:iostate ios::rdstate()
重置標誌變數:void ios::clear(iostate _state=goodbit) ,這個函式可以把標識變數初始化為_state的值,預設為全0
2.緩衝區
basic_istream& ignore(streamsize _count = 1, int_type _delim = traits_type::eof());
忽略緩衝區內的_count個字元,直到遇到_delim字元。
3.字串輸入
1.cin>>
遇到空白字元停止,可以用cin>>noskipws>> 忽略空白字元
2.cin.get(ch) //接收乙個字元
cin.get(字元陣列名,接收字元數目)用來接收一行字串,可以接收空格
3.cin.getline(接受字串的名字,接受個數,結束字元),第三個引數預設為'\0'
4.getline(cin,string),讀入乙個string
c cin常用總結
從標準輸入 鍵盤 寫入的資料會都存放在輸入快取區,當輸入快取區有資料時,cin會直接從輸入快取區讀取,而當輸入緩衝區沒有資料時,cin會掛起請求使用者輸入資料 從標準輸入寫入資料,按enter鍵結束此次輸入,而cin x 讀取一次資料結束的標誌是空白 包括空格,製表符tab,回車 表示式cin x ...
c cin使用總結
一 輸入原理 程式的輸入都建有乙個緩衝區,即輸入緩衝區。一次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的資料存入輸入緩衝區,而cin函式直接從輸入緩衝區中取資料。正因為cin函式是直接從緩衝區取資料的,所以有時候當緩衝區中有殘留資料時,cin函式會直接取得這些殘留資料而不會請求鍵盤輸入 1 in...
C cin速度優化
很多c 的初學者可能會被這個問題困擾,經常出現程式無故超時,最終發現問題處在cin和cout上,甚至有些老oier也會被這個問題困擾,每次只能打scanf和printf,然後一堆的佔位符巨麻煩 這是因為c 中,cin和cout要與stdio同步,中間會有乙個緩衝,所以導致cin,cout語句輸入輸出...