例题一
#include<iostream>
int main()
{
char answer;
std::cout<<"请问可以格式化你的电脑吗?【Y/N】"<<"\n";
std::cin>>answer;
switch( answer )
{
case 'y':
case 'Y':
std::cout<<"不要随便格式化你的硬盘!!!"<<"\n";
break;
case 'n':
case 'N':
std::cout<<"明智!!"<<"\n";
break;
default:
std::cout<<"输入错误!!!"<<"\n";
break;
}
std::cin.ignore(100,'\n');
std::cout<<"输入任何字符结束程序!"<<"\n";
std::cin.get();
return 0;
}
例题二
//温度转换
#include<iostream>
int main()
{
//华氏温度==摄氏温度*9.0/5.0+32
const unsigned short ADD_SUBTRACT = 32;
const double RADIO = 9.0/5.0;
double tempin, tempout;
char typein, typeout;
std::cout<<"请以【xx.x C】或者【xx.x F】格式输入一个温度:";
std::cin >> tempin >> typein;
std::cin.ignore(100,'\n');
std::cout<<"\n";
switch( typein )
{
case 'c' :
case 'C' :
tempout=tempin * RADIO+ADD_SUBTRACT;
typein = 'C';
typeout = 'F';
break;
case 'F' :
case 'f' :
tempout = (tempin - ADD_SUBTRACT)/RADIO;
typein = 'F';
typeout = 'C';
break;
default:
typeout='E';
}
if (typeout!='E')
{
std::cout<<tempin <<typein <<"="<<tempout<<typeout<<"\n\n";
}
else
{
std::cout<<"输入格式错误!!!"<<"\n";
}
std::cout<<"请输入任意字符结束程序";
std::cin.get();
return 0;
}
对输入数据进行合法性检查
对cin 调用的结果不要做任何假设
cin 对象有几个专门来报告器工作情况的成员函数,它们将返回一个真/假值来表明cin的状态。
- eof():如果达到文件或者输入末尾,返回true。
- fail():如果cin 无法工作,返回true。
- bad():如果cin 因为比较严重的原因(如 内存不足)而无法工作,返回true。
-good():如果以上情况都未发生,返回true。