c++ setstate() 和 clear() 函数
生活随笔
收集整理的這篇文章主要介紹了
c++ setstate() 和 clear() 函数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include <iostream>
#include <string>
using namespace std;
int main()
{auto st1 = cin.rdstate(); //記住cin流的原始狀態(tài)cout << "old state of stream is: "<< st1 << endl; //輸出原始狀態(tài),因?yàn)槭菬o錯(cuò)的,所以0表示值為:goodbitint c;cin >> c; //此處輸入一個(gè)a,那么流發(fā)生錯(cuò)誤,cout << cin.rdstate() << endl; //因?yàn)樽x入fail,所以cin.rdstate() 為 // failbit,也就是4auto st2 = cin.rdstate(); //記住此時(shí)的cin狀態(tài)cin.clear(); //將cin清除所有錯(cuò)誤標(biāo)志位,就是值回到goodbitcout << cin.rdstate() << endl; //輸出復(fù)位錯(cuò)誤位后的狀態(tài),0cin.setstate(st2); //將st2的狀態(tài)追加到cin狀態(tài)中,failbit位被追加cout << cin.rdstate() << endl; //輸出追加后的狀態(tài) 即 cin.rdstate = failbitreturn 0;
}
setstate()函數(shù)并不強(qiáng)制覆蓋流的原狀態(tài),而是將括號(hào)內(nèi)參數(shù)所代表的狀態(tài)疊加到原始狀態(tài)上。
clear() 函數(shù)將流狀態(tài)設(shè)置成括號(hào)內(nèi)參數(shù)所代表的狀態(tài),強(qiáng)制覆蓋掉流的原狀態(tài)。
總結(jié)
以上是生活随笔為你收集整理的c++ setstate() 和 clear() 函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows7下安装centos7双系
- 下一篇: GRUB的使用