洛谷p1957口算練習題,輸入的資料可能是三個(第乙個是字元,後兩個是整型) 也可能是兩個(都是整型)。
原因:cin有乙個特性,如果定義了乙個int型的變數,輸入這個變數時就會檢測輸入的是不是數字。如果程式發現使用者輸入了錯誤內容時(輸入的不是int型),程式就會鎖住cin。
如何解決:判斷是否輸入錯誤,若輸入錯誤就執行 cin.clear(); ,以重置cin狀態,使程式能繼續讀入其他資料。這時輸入的錯誤資料還會在緩衝區中,繼續輸入資料的話,還是會從這個資料開始讀取。
例如:
int a =
1, b =
2, c =3;
cin >> a >> b >> c;
cout << a <<
' '<< b <<
' '<< c /輸入:6 a 8
//結果:6 0 3
對該題:
int num[2]
;char k;
//對輸入兩個或三個型別的處理 if(
!(cin>>num[0]
))//若讀入的資料不是int型
else
//若輸入的第乙個資料是int型,則繼續輸入下乙個
cin>>num[1]
;
C 自我掃盲 1 int變數cin輸入字母報錯
為啥給int賦值字元常量沒問題,通過cin輸入字元就會出錯?輸入數字 輸入字母 d 圖三 看到同樣問題的部落格裡大佬的回答 參考 樓主的問題根源在於 你可能認為字母和一些符號才算字元。其實,翻開字元ascii表,你可以看到數字字元也是字元,製表符 換行符 分頁符 空字元之類的也列在其中,也就是說,a...
將乙個int型的高低位反轉
乙個int型資料一般占用4位元組,即32位。實現乙個int型的高低位反轉就是按乙個位元組一次取出其值暫時儲存到乙個unsigned char陣列中,然後按照相反的方向將資料的值寫回int型資料中。c 實現如下 include include intmain char p char data prin...
dos下將命令的執行結果賦給變數
在使用spark時,需要在spark env.cmd中,為環境變數spark dist classpath賦值,賦的值是執行命令 hadoop classpath 的返回結果。如果是在linux環境下,比較簡單,直接 export spark dist classpath hadoop classp...