c++ cin不能输入的问题
生活随笔
收集整理的這篇文章主要介紹了
c++ cin不能输入的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
cin不能輸入說明cin這個對象的狀態出現問題了。
cin這個對象里邊有個緩沖區結構(也就是流,流的意思可以想象成一個管子,數據從一頭持續輸入,從另一頭持續流出,像水流一樣),專門獲取鍵盤輸入。然后cout可以從這個緩沖區里邊獲取存在的數據.當然使用getline()方法和getch()方法也可以。
cin這個對象還有狀態位標志,一共有四個,包括正常和錯誤(錯誤類型有三個)。
簡單點理解就相似于平時你創建person對象,里邊有一個數組數據(相當于cin對象的流),還有一個枚舉結構,這個枚舉結構有四個標志(相當于cin對象的狀態位標志)。
cin對象的緩沖區不給你輸入了就說明cin對象的狀態出現了問題,即不是正常狀態,這種情況發生的可能是因為你想往里邊輸入一個數字,但是你鍵盤上輸入了一個字符,它的狀態位標志就變為錯誤類型的了。
解決的辦法也很簡單,把狀態位標志改成正常的就行了,cin就給你輸入了,該狀態位標志很簡單,調用cin對象的clear()方法就行了,即cin.clear() 。
但是這樣有一個問題,就是cin對象的緩沖區里邊還有東西(你之前輸入的),如果你要獲取你最近鍵盤輸入的數據,你得先把它取出來才能獲取最近輸入的數據(畢竟是流結構)。所以一般情況下你還得把這個流給清空了,使用的函數為:cin.sync() , 清除緩沖區。
總結
以上是生活随笔為你收集整理的c++ cin不能输入的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文本分类的学习
- 下一篇: 关于助动词和过去分词的一点见解