簡體   English   中英

為什么istream,ostream,iostream,ios_base都在這里工作

[英]why istream,ostream,iostream,ios_base all work here

int main()
{
int a=0;
int b=0;
std::cout<<"Please enter an int: "<<std::endl;
std::cin>>a;
auto old_state =std::cin.rdstate(); // remember the current state of cin
std::cin.clear(); // make cin valid
std::cout<<"Please enter another int: "<<std::endl;
std::cin>>b;// use cin
auto new_state = std::cin.rdstate();
if(old_state==std::istream::failbit&&new_state==std::istream::failbit) 
//I tried std::ostream,std::iostream,ios_base they all work.
std::cout<<"Both are failbit!"<<std::endl;
}

我剛剛遇到了關於C ++ Primer的IO章節。 我自己嘗試了這個代碼,並且驚奇地發現,在最后兩行中,我將std::istream更改為std::ostreamstd::iostreamstd::ios_base ,當我輸入兩個char時,它們似乎都有效。 有人請幫助用簡單的話來解釋這為什么會發生這種情況。 提前謝謝了!

因為failbitios_basepublic成員,所有其他類public繼承自ios_base

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM