首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

cin当没有声明数组变量的时候,输入一串字符时候只读取第一个啊解决方案

2012-02-07 
cin当没有声明数组变量的时候,输入一串字符时候只读取第一个啊?我想只能使用单个数字来进行判断,大概程序

cin当没有声明数组变量的时候,输入一串字符时候只读取第一个啊?
我想只能使用单个数字来进行判断,大概程序如下:
cout < < "请输入选择: ";
char   key= '   ';
loop1:   cin> > key;
switch(key)
{case   '0 ':   Sort();break;
case   '1 ':   Add();break;
default:   {   cout < < "输入错误!请重新选择: ";cin.clear();//   cin.sync();         cin.ignore(10000,   '\n ');    
goto   loop1;   }

输入1时没错,可是我输入1a时程序也进入Add()了,怎么办啊?我想了好久都没法解决啊。

[解决办法]
cin> > key每次都读出一个字符的,所以1a的时候第一次key的内容是1
[解决办法]
char key[2] = {0};

loop1:

cin> > key;

if (key[1] != 0)
{
cout < < "输入错误!请重新选择: ";
cin.clear();
goto loop1;
}


switch(*key)
{
case '0 ':
Sort();
break;
case '1 ':
Add();
break;
default: {
cout < < "输入错误!请重新选择: ";
cin.clear();
goto loop1;
}
}

热点排行