C++初学者

1:在使用swich语句的时候,最长用的就是枚举类型,但是,输入时,cin无法识别枚举类型,这时候,只能输入一个整型。当swich将int值和枚举标签进行比较式,将枚举两提升为int,另外,在while循环测试条件中,也会将枚举量提升为int类型,例如下面这个程序:

#include<iostream>


enum{red,orange,yellow,green,blue,violet,indigo}; 枚举类型


int main()
{
using namespace std;
cout<<"Enter color code (0~6)";
int code;
cin>>code;
cin.get();

while(code<=indigo&&code>=red)
{
switch(code)
{
case red :cout<<"Her lips were red."<<endl;
break;
case orange :cout<<"Her hair was orange."<<endl;
break;
case yellow :cout<<"Her shoes were yellow."<<endl;
break;
case green :cout<<"Her nails were green."<<endl;
break;
case blue :cout<<"Her sweatsuit was blue."<<endl;
break;
case violet :cout<<"Her eyes were violet."<<endl;
break;
case indigo :cout<<"Her mood was indigo."<<endl;
break;
}


cout<<"Enter color code(0~6):";
cin>>code;
cin.get();
}


cout<<"Bye"<<endl;


cin.get();
return 0;
}

2:在通过输入非法数据来完成退出的时候,有一条重要的语句。

int golf[5];

......

while(!(cin>>golf[i]))

{

cin.clear();

while(cin.get()!='\n')

continue;

cout<<"Please enter a number:";

}

golf是整型,如果你输入非整型时,cin>>golf[i]结果是flase,而while循序中while(!(cin>>golf[i]))结果便变成了true,因此输入错误信息,进入循环。进入循环的第一件事便是清除缓存中的输入,如果忽略了这条语句,程序将拒绝继续读取输入。

然后,cin.get()!='\0',程序读取了你输入的错误语句中行尾前的所有语句,即读取你所输入的所有数据,从而删除这一行中的错误输入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值