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;
}
}