读取数量不定的输入数据(关于使用while(std::cin >>value))

在读取数量不定的输入数据时,经常使用while(std::cin >> value)作为循环条件,但在代码测试时,怎样才算是结束输入呢?

在C++ primer里面,对这个问题给了详细的解释,搬运如下:

表达式 “std::cin >> value”,从标准输入读取下一个数,保存在value当中。【表达式 “std::cin >> value”中的输入运算符(>>)接受一个istream(std::cin)作为其左侧运算对象,接受一个对象(value)作为其右侧运算对象。它从给定的istream读入数据,并存入给定对象中,返回其左侧运算对象作为其计算结果,也就是std::cin】因此,循环条件实际上检测的是std::cin。

下面对std::cin加以说明,同样是在C++ primer上搬过来的:

C++语言并未定义任何输入输出语句,它包含了了一个全面的标准库来提供IO机制。常见的iostream库便是其一。iostream库包含了两个基础类型istream和ostream。一个流就是一个字符序列,是从IO设备读出或写入IO设备的。术语“流”想表达的是,随着时间的推移,字符是顺序生成或消耗的。

常见的cin是istream类型的对象。至于cin的原理可以参照https://mp.csdn.net/postedit/52248150里面的笔记内容,两年前写的,全然忘了,编程之路,需不间断,持之以恒呀。

当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符,或遇到一个无效输入时,istream对象的状态会变为无效。处于无效状态的istream对象会使条件变为假。【windows Ctrl+Z/ Unix Ctrl+D】


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值