網(wǎng)站首頁 編程語言 正文
cin的返回值
今天在用STL時(shí)用到while(cin>>s1>>a>>s2>>b)這樣的語句,本來所有的輸入都是“string+int+string+int”格式的,但是結(jié)束標(biāo)志卻是“quit”,于是很好奇cin的輸入到底是返回什么。
首先想到,cin是一個(gè)對(duì)象,那么到底是返回什么影響了while,查了很多博客才發(fā)現(xiàn)是操作符“>>”在起作用,這個(gè)操作符接收一個(gè)istream對(duì)象作為其做操作數(shù),接收一個(gè)對(duì)象作為其右操作數(shù)。
”>>”操作符返回其左操作數(shù)作為結(jié)果,這樣也就可以解釋為什么上面可以將個(gè)幾輸入操作合并了。
原因在于得到輸入后返回一個(gè)cin,接著可以繼續(xù)操作讀取了,而且在輸入不符合類型和EOF時(shí)停止。
輸入(cin)緩沖是行緩沖。
當(dāng)從鍵盤上輸入一串字符并按回車后,這些字符會(huì)首先被送到輸入緩沖區(qū)中存儲(chǔ)。
每當(dāng)按下回車鍵后,cin 就會(huì)檢測(cè)輸入緩沖區(qū)中是否有了可讀的數(shù)據(jù)。
cin流輸入的返回值問題
感覺今天發(fā)現(xiàn)一個(gè)比較好的問題
while(cin>>n)
這個(gè)語句肯定經(jīng)常看到把
但是
為什么可以用while來判斷呢
難道cin>>n的返回值是bool 類型?
這時(shí)候,看源碼 的 重要性就體現(xiàn)出來了
在ios里面有
operator void *() const {
if(state&(badbit|failbit) )
return 0;
return (void* )this;
}
這樣一段代碼
再來看這樣一段文字
所以說 invalid state 時(shí) 返回值為0,否則是(void *)首地址
這樣就可以用while來判斷了
原文鏈接:https://blog.csdn.net/qq_34677945/article/details/69392223
相關(guān)推薦
- 2022-09-21 Shell自動(dòng)化配置SSH免密登錄和取消SSH免密配置腳本_linux shell
- 2022-06-30 基于Python使用永中文檔轉(zhuǎn)換服務(wù)的方式_python
- 2022-08-15 VPP靜態(tài)映射實(shí)現(xiàn)DNAT
- 2022-10-03 React實(shí)現(xiàn)監(jiān)聽粘貼事件并獲取粘貼板中的截圖_React
- 2022-04-05 Springboot為什么加載不上application.yml的配置文件
- 2022-03-04 uniapp和原生app交互
- 2022-04-07 C#實(shí)現(xiàn)Socket服務(wù)器及多客戶端連接的方式_C#教程
- 2022-11-09 關(guān)于Rust編譯時(shí)報(bào)link.exe?not?found錯(cuò)誤問題_相關(guān)技巧
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支