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',程序读取了你输入的错误语句中行尾前的所有语句,即读取你所输入的所有数据,从而删除这一行中的错误输入。
#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',程序读取了你输入的错误语句中行尾前的所有语句,即读取你所输入的所有数据,从而删除这一行中的错误输入。
相关文章推荐
- 给C++初学者的50个忠告
- SunOS 5.10 sparc C/C++ 初学者之环境安装 (非root用户安装)
- C++初学者的足迹10 作业报告9 计算周工资
- c++基础实例 非常适合初学者
- 初学者必看 C++简单的主机间的通信并获取服务器端的Sysinfo信息
- C++ 初学者指南 第八章(5)
- 初学者学习C++的50条忠告
- C++ 初学者指南 第三篇(5)
- 初学者对于c++的认识
- 给C++初学者的50个忠告(转)
- 初学者必备:C++经典入门详细教程
- 初学者学习C++的50条忠告
- C++初学者指南 第九篇(5)
- [分享]给C++初学者的50个忠告
- C++学习(适合初学者)
- 使用c/c++指针 初学者容易犯的几个错误
- c++初学者实况_1
- 给C++初学者的50个建议忠告
- C++ 初学者指南 第五篇(11)
- c++实现数组压缩存储,初学者