網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
cin的返回值
今天在用STL時(shí)用到while(cin>>s1>>a>>s2>>b)這樣的語(yǔ)句,本來(lái)所有的輸入都是“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ù)操作讀取了,而且在輸入不符合類(lèi)型和EOF時(shí)停止。
輸入(cin)緩沖是行緩沖。
當(dāng)從鍵盤(pán)上輸入一串字符并按回車(chē)后,這些字符會(huì)首先被送到輸入緩沖區(qū)中存儲(chǔ)。
每當(dāng)按下回車(chē)鍵后,cin 就會(huì)檢測(cè)輸入緩沖區(qū)中是否有了可讀的數(shù)據(jù)。
cin流輸入的返回值問(wèn)題
感覺(jué)今天發(fā)現(xiàn)一個(gè)比較好的問(wèn)題
while(cin>>n)
這個(gè)語(yǔ)句肯定經(jīng)常看到把
但是
為什么可以用while來(lái)判斷呢
難道cin>>n的返回值是bool 類(lèi)型?
這時(shí)候,看源碼 的 重要性就體現(xiàn)出來(lái)了
在ios里面有
operator void *() const {
if(state&(badbit|failbit) )
return 0;
return (void* )this;
}
這樣一段代碼
再來(lái)看這樣一段文字
所以說(shuō) invalid state 時(shí) 返回值為0,否則是(void *)首地址
這樣就可以用while來(lái)判斷了
原文鏈接:https://blog.csdn.net/qq_34677945/article/details/69392223
相關(guān)推薦
- 2022-12-06 React?Hook中的useEffecfa函數(shù)的使用小結(jié)_React
- 2022-03-16 c#語(yǔ)言程序構(gòu)建基塊_C#教程
- 2022-09-21 Python實(shí)現(xiàn)斐波那契數(shù)列的多種寫(xiě)法總結(jié)_python
- 2022-02-20 C#?.NET實(shí)現(xiàn)掃描識(shí)別圖片中的文字_C#教程
- 2022-05-25 使用@Builder導(dǎo)致的無(wú)法創(chuàng)建無(wú)參構(gòu)造方法
- 2022-10-20 初識(shí)Android?PowerManagerService省電模式_Android
- 2022-07-02 C語(yǔ)言由淺入深講解線(xiàn)程的定義_C 語(yǔ)言
- 2022-04-05 availableProcessors is already set to [8], rejecti
- 最近更新
-
- 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)證過(guò)濾器
- Spring Security概述快速入門(mén)
- 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)程分支