亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

while(cin)是什么意思?有知道的大佬嗎?

while(cin)是什么意思?有知道的大佬嗎?

蠱毒傳說 2021-12-09 11:07:14
while (cin >>s){if(cin){}} 這里的IF括號中是什么意思?什么時候會運行IF中的內容 什么時候跳過IF
查看完整描述

2 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

cin是C++編程語言中的標準輸入流對象,即istream類的對象。cin主要用于從標準輸入讀取數據,這里的標準輸入,指的是終端的鍵盤。此外,cout是流的對象,即ostream類的對象,cerr是標準錯誤輸出流的對象,也是ostream 類的對象。

這里的標準輸出指的是終端鍵盤,標準錯誤輸出指的是終端的屏幕。

 cin讀取數據也是從緩沖區中獲取數據,緩沖區為空時,cin的成員函數會阻塞等待數據的到來,一旦緩沖區中有數據,就觸發cin的成員函數去讀取數據。

當cin>>從緩沖區中讀取數據時,若緩沖區中第一個字符是空格、tab或換行這些分隔符時,cin>>會將其忽略并清除,繼續讀取下一個字符,若緩沖區為空,則繼續等待。但是如果讀取成功,字符后面的分隔符是殘留在緩沖區的,cin>>不做處理。

擴展資料

輸入緩沖是行緩沖。當從鍵盤上輸入一串字符并按回車后,這些字符會首先被送到輸入緩沖區中存儲。每當按下回車鍵后,cin.get()   就會檢測輸入緩沖區中是否有了可讀的數據。

cin.get()   還會對鍵盤上是否有作為流結束標志的   Ctrl+Z   或者   Ctrl+D   鍵按下作出檢查,其檢查的方式有兩種:阻塞式以及非阻塞式。   

阻塞式檢查方式指的是只有在回車鍵按下之后才對此前是否有   Ctrl+Z   組合鍵按下進行檢查,非阻塞式樣指的是按下   Ctrl+D   之后立即響應的方式。

如果在按   Ctrl+D   之前已經從鍵盤輸入了字符,則   Ctrl+D的作用就相當于回車,即把這些字符送到輸入緩沖區供讀取使用,此時Ctrl+D不再起流結束符的作用。如果按   Ctrl+D   之前沒有任何鍵盤輸入,則   Ctrl+D   就是流結束的信號。



查看完整回答
反對 回復 2021-12-13
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

一般是保證正確輸入的
假設 s是整形 那么輸入非整形的 字符 浮點 都會結束循環
cin的返回值 你可以試一下cout<<(cin>>s); 看下如果輸入不匹配類型的返回值 當返回值為0的時候 自然不執行if后面的語句了
另外 這種情況下 CTRL+Z也可以結束循環

查看完整回答
反對 回復 2021-12-13
  • 2 回答
  • 0 關注
  • 558 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號