文章
4
粉丝
140
获赞
8
访问
37.2k
1、cin可以连续从键盘读取想要的数据,以空格、tab或换行作为分隔符,输入停止且不予处理任其留在缓冲区。
2、当cin>>从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,cin>>会将其忽略并清除,继续读取下一个字符,若缓冲区为空,则继续等待。但是如果读取成功,字符后面的分隔符是残留在缓冲区的,cin>>不做处理,清空输入缓冲区的操作为cin.clear()。
【例】如果连续输入变量值的话,如下所示:
cin >> a >> b;
那么在bash输入的时候就可以:
a b
中间用空格或Tab或回车隔开,这样cin首先从缓冲区读入a,再读到分隔符停止且不处理,到读b时先读入之前残留的分隔符自动忽略并清除,然后正常读入b。
也即每遇到一次 >> x 便做一次输入动作。
3、遇到输入的数据类型与cin的变量不一样会怎样?
会停止输入并返回0(false)。
【例】如果期望输入一个int:
int a;
cin >> a;
结果输入:
1234A56
那么cin在读到A处就会停止并且返回“false”,并且将“A56”都留在缓冲区里了。
因此可做如下判断输入正确与否:
while(cin >> a){
......
}
登录后发布评论
暂无评论,来抢沙发