您好,登錄后才能下訂單哦!
這篇文章主要介紹了C++如何對cin輸入字符進行判斷以分段函數處理的方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
具體如下:
C++是用cin.fail()來判斷。
至于分段函數的處理,比如要你完成如下的一個分段函數:
大多數人第一個想法,就是寫一大堆if~else if~else來整,其實用?:問號冒號三目條件運算符,配合switch-case-break來搞,更加清晰哦。
上述的分段函數可以劃分成如下的3個情況:
因此就得到如下的代碼:
#include<iostream> using namespace std; void main(){ int x,y; cout<<"x="; cin>>x; //處理亂輸入! while(cin.fail()){//如果cin出現了問題,那么cin調用fail()就會返回真,也就是說進入循環中 cin.clear();//復位標志,將流cin中的所有狀態值都重設為有效狀態 cout<<"鍵入的數據類型與定義的數據類型不匹配,請重新輸入"<<endl; cin.ignore(10000,'\n');//清空上次輸入,cin.ignore(10000,'\n');表示:如果輸入流的前一百的字符內存在\n的話,那么在\n 前的字符全部忽略掉,\n之后的字符依然有效 cout<<"x="; cin>>x;//重新輸入x } int flag=(x<0)?0:(x<3)?1:2;//x<0嗎?是,則為情況0,否,判斷x<3嗎?是,則為情況1,否,為情況2。再有就在這個問號冒號三目條件運算符下累加下去 switch(flag){//是switch-case-break結構,不要記switch-case結構,這樣常常會忘掉break的。 case 0: y=x; break; case 1: y=3*x; break; case 2: y=2*x; break; } cout<<"y="<<y<<endl; }
運行結果如下:
感謝你能夠認真閱讀完這篇文章,希望小編分享的“C++如何對cin輸入字符進行判斷以分段函數處理的方法”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。