c++switch函数无法跳出

switch后面用int类型判断,默认输出错误,switch是无限循环。输入未定义的数字时按默认输出错误,跳回重新选择,但是输字母的时候输出错误后无法跳出,重复出现错误的那条语句,求解。

完整的程序怎么写的。switch怎么套的循环。

while (1)
{
system("cls");
menu();
cout<<"Select the fuctions 0-8."< cin>>choice;

    if (choice==0)//select to exit
    {
        cout<<"Save to file?(y/n)"<<endl;
        cin>>yesOrNo;
        if (yesOrNo=='y'||yesOrNo=='Y')
        {
            save(stu, lengthOfChart);
            cout<<"Thanks for using. Press any key to exit."<<endl;
            break;
        }
    }

    switch (choice)
    {
        case 1:display(stu, lengthOfChart);break;
        case 2:search(stu, lengthOfChart);break;
        case 3:lengthOfChart=append(stu, lengthOfChart);break;
        case 4:lengthOfChart=del(stu, lengthOfChart);break;
        case 5:modify(stu, lengthOfChart);break;
        case 6:count(stu, lengthOfChart);break;
        case 7:sort(stu, lengthOfChart);break;
        case 8:save(stu, lengthOfChart);break;
        default: cout << "\nError! Press any key to select again." << endl;
    }
    _getch();
}

cout<<"Select the fuctions 0-8."< cin>>choice;
这肯定不对
cout<<"Select the fuctions 0-8."< cin>>choice;

_getch();去掉