您的位置:首页 > 编程语言 > C语言/C++

C++初学者

2014-04-10 21:28 323 查看
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',程序读取了你输入的错误语句中行尾前的所有语句,即读取你所输入的所有数据,从而删除这一行中的错误输入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: