【发布时间】:2014-06-10 10:08:56
【问题描述】:
我想检查用户输入的值是字符串还是整数。输入在代码中被视为 cin>>obj[i].int_code;。
问题是如果用户输入任何字符串而不是整数,程序会进入无限循环。
#include<iostream>
using namespace std;
class item{
public:
int int_code;
string str_name;
};
item obj[100];
main(){
int c,i=0,int_cd,n=0,pos=0;
do{
cout<<"\n_______YOUR OPTIONS________\n";
cout<<"\t1.Add Item\n\t2.View Item\n\t3.Delete Item\n\t4.List Item\n\t5.Exit\n";
cout<<"Enter your choice: ";
cin>>c;
switch(c){
case 1://Add Item
cout<<"Enter the item_code: ";
cin>>obj[i].int_code;
cout<<"Enter the item_name: ";
cin>>obj[i].str_name;
i++;
n++;
break;
case 2://View item
cout<<"Enter the item_code: ";
cin>>int_cd;
for(i = 0;i < n;i++)
if(int_cd == obj[i].int_code)
cout<<obj[i].int_code<<"\t"<<obj[i].str_name<<"\n";
break;
case 3://Delete Item
cout<<"Enter the item_name: ";
cin>>int_cd;
for(i = 0;i < n; i++)
if(int_cd==obj[i].int_code)
pos=i;
for(i=pos;i<n;i++){
if(obj[i].int_code != NULL)
obj[i]=obj[i+1];
else
obj[i].int_code=NULL;
//obj[i].str_name=;
}
n--;
break;
case 4://list Item
for(i=0;i<n;i++)
cout<<obj[i].int_code<<"\t"<<obj[i].str_name<<"\n";
break;
default:
cout<<"Enter any number between 1 to 5";
break;
}
}while( c != 5 );
}
enter code here
【问题讨论】:
标签: c++ string class integer cin