cin>>如何检查输入

       istream类重载了抽取运算符<< ,  所以cin >> 支持c++内置的所有基本数据类型。cin对象将标准输入表示为字节流,然后根据抽取 运算符<<(本质就是一个函数)的参数类型对字节流进行类型转换,转换为所需的类型。

       不同版本的抽取运算符查看输入流的方法是相同 的。他们跳过空白(空格、换行符、和制表符),直到遇到非空白字符。当输入没有满足程序期望的时候,比如对于一个int类型的变量a,却输入字符H,这种情况下,抽取运算发将不会改变变量a的值,并返回0,。

测试代码如下:

//check_it.cpp -- checking for valid input
#include <iostream>

int main()
{
	using namespace std;
	cout << " Enter numbers:";

	int sum = 0;
	int input;
	while ( cin >> input )
	{
		sum += input;
	}

	cout << "Last value entered  = " << input << endl;
	cout << "sum = " << sum << endl;
	return 0;
}
运行效果如图:


       

       由于输入被缓冲。因此通过键盘输入的第二行在用户按下回车键之前,不会被发送给程序。然而循环在字符z处停止了对输入的处理,因为z不予int类型相匹配。输入与预期格式不匹配反过来将导致表达式cin>>input的返回值为false,因此while循环被终止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值