例子1:向用户提出一个关于是否的问题?然后用户回答y/Y和n/N,并赋值给answer变量。
int main()
{
char answer;
cout<<"吃饭了吗?"<<"回答“是或否”<<"\n"<<endl;
cin>>answer;
switch(answer)
{
case 'Y':
case 'y':
cout<<"吃过了"<<"\n";
break;
case 'N':
case 'n':
cout<<"没吃过了"<<"\n";
break;
default:
cout<<"输入不符合要求"<<endl;
break;//跳出
}
cin.get();//伪装接收让控制台不要一闪而过,强制接收用户的输入,再退出(相当于C中的pause暂停)
//事实上我们输入了N之后会摁下enter键,cin从缓冲区提取的是N给answer,而enter字符仍然在键盘缓冲区中,之后被cin.get()获取到(回车也是一个ASCII码),所以还是没有实现暂停仍然一闪而过,所以之前要加上一行代码,cin.ignore(100,'\n');//意思是忽略100个字符,只要。
return 0;
}
例2:温度互相转换。(华氏温度=摄氏温度*9.0/5.0+32)
int main()
{
const unsigned short ADD_SUBTRACT=32;//静态变量(#define和const之间区别)
const double RATIO=9.0/5.0;//这两句用宏定义也没问题
double tempIn,tempOut;//输入输出温度
char typeIn,typeOut;//类型
cout<<"输入温度格式xx.x C/xx.x F:"
cin>>tmmpIn>>typeIn;//空格标志着下一个输入,所以这样写我可以输入两个比如:32.4 C(他会先把32.4给tempIn,空格表示本次输入结束之后是下一个输入,C给typeIn)
cin.ignore(100,'\n');//为了摆脱其他无意义的输入的影响
//cin.ignore(1000, '\n')的含义是把缓冲区内从当前字符开始知道'\n'之前字符(如果有1000个的话)忽略掉,实际上你这里假设一行不会超过1000个字符,所以含义是忽略一行
switch(typeIn)//判断输入的是什么类型
{
case 'C':
case 'c':
tempOut=...;
typeOut='F';
typeIn='C';//无论用户输入大写还是小写我们强制性转化位大写
break;
case 'F':
case 'f':
tempOut=...;
typeOut='C';
typeIn='F';//无
break;
default:
typeIN:'E'
break;
}
return 0;
};
变量的类型和取值范围