C++中while(cin>>a)是什么意思

 我来答
加百列windy
高粉答主

推荐于2019-08-12 · 每个回答都超有意思的
知道小有建树答主
回答量:2074
采纳率:100%
帮助的人:95.8万
展开全部

cin是输入操作符,cin>>a的过程是先取得从键盘的输入值a,并将a赋给cin,因此while(cin>>a)的意思就是只要输入的值有效,那么就执行while体内的语句。

实例设计如下:

1、统计输入连续数字的个数,while循环结束 (跳出流对象)的时候,打印最后一个数 。通过检测其流的状态来判断结束;

(1)若流是有效的,即流未遇到错误,那么检测成功。

(2)若遇到文件结束符,或遇到一个无效的输入时(例如本题输入的值不是一个整数),istream对象的状态会变为无效,条件就为假。

2、执行结果如下(Z是按了ctrl的效果,为了结束执行):

【不同的操作系统有不同的约定,在windows系统中,输入文件结束符的方法是先按Ctrl+Z,然后再按Enter。在UNIX系统中,包括Mac OS X系统中,文件结束输入为Ctrl+D。】

扩展资料:

while(cin>>a)的合法性:

运算符返回的是流对象的引用,cin是一个流对象,而>>运算符返回左边的流对象,也就是说cin>>val返回cin,于是while(cin>>val)就变成了while(cin),问题就变成了一个流对象在判断语句中的合法性。

不管是while(cin)还是if(cin),都是合法的。因为定义一个类,然后定义该类的对象,然后使用if语句来判断它是不合法的。这说明,流对象具有某种转换函数,可以将一个流对象转换成判断语句可以识别的类型。

打开iostream.h文件中operator void *() const和bool operator!() const。这两个函数使得流对象可作为判断语句的内容。

operator void *() const;函数在while(cin)或是if(cin)时被调用,将流对象转换成void*类型。

bool operator!() const;函数在while(!cin)或是if(!cin)时被调用,将流对象转换成bool类型。

此外,这两个类型转换都是隐式的。

参考资料:

百度百科--cin(C++标准输入流)

染尘墨羽
推荐于2019-10-19 · TA获得超过1.1万个赞
知道答主
回答量:1032
采纳率:100%
帮助的人:40.2万
展开全部

cin>>a代表获取键盘输入的值赋值给变量a,将cin>>a置于while的循环条件内即while(cin>>a),将会一直测试输入流是否正常。

如果输入流正常,就会继续循环获取键盘值,如果输入流错误,或者达到文件末尾(在windows下Ctrl+Z,在Linux下Ctrl+D),该循环就会终止。

测试代码如下:

#include<iostream>

using namespace std;

int main()

{

int a= 0 ;

int cnt=1;//统计次数

while(cin >> a)

{

cout<<a<<endl;

cnt++;

} //while循环结束 

cout<<cnt<<endl;

return 0;

}

该代码会将从键盘获取到的标准输入流(即键盘输入的整数)以标准输出流输出(即显示到屏幕终端上)。

cin实际是istream类的一个预定义对象,而istream重载了void * 和!等一些运算符,可以直接使用"cin>>"这样的方式直接进行值的输入,是因为istream为所有的基本数据类型重载了">>"这个运算符。

代码截图:

扩展资料:

世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。

研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

参考资料:百度百科-C++

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shanyucha
2010-11-27 · TA获得超过591个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:167万
展开全部
cin是输入操作符,cin>>a的过程是先取得从键盘的输入值a,并将a赋给cin,因此while(cin>>a)的意思就是只要输入的值有效,那么就执行while体内的语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wchyumo2011
推荐于2017-09-08 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2821万
展开全部
while(cin>>a)

将会一直测试输入流是否正常,如果输入流正常,就会继续循环,如果输入流错误,或者达到文件末尾,循环就会终止。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
STAR_孙
2010-11-26 · TA获得超过177个赞
知道答主
回答量:63
采纳率:0%
帮助的人:48.3万
展开全部
当输入a就执行之下语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式