C++ 中写循环输入程序 已经清楚了缓冲区的错误状态 还是无法再次输入

用了断点看程序在哪里出错的
是cin>>s这里在输入被试信息后再回来时就无法输入了
呈现这个错误一直重复

img

程序内容具体如下:

#include<iostream>
#include<string>
#include<vector>

using namespace std;

struct EXAMINEE
{
    int ID;
    string name;
    char gender;
    int age;
    char hand;
};

istream& read(istream&in,EXAMINEE&ee)
{
    cin>>ee.name>>ee.gender>>ee.age>>ee.hand;
    return in;
}


int main()
{
    vector<EXAMINEE> E;
    string s;
    int i=1;
   
    while(s!="quit")
    {
    cout<<"‘add’ 是新增被试,‘output’是输出被试信息,‘quit’是推出实验"<<endl;
    cout<<"请选择下一步"<<endl;
    
        
        for (double a=0;a!=99999;++a)
    {
       
        cin>>s;
    if(s=="add")
    {
        EXAMINEE e;
        cout<<"请按顺序输入您的姓名、性别(F/M)、年龄、利手(R/L)"<<endl;
        while(read(cin,e))
        {
            e.ID=i;
            E.push_back(e);
            
        }
        ++i;
    }
        if(s=="output")
        {
            for(vector<EXAMINEE>::size_type a=0;a!=E.size();++a)
            {
                cout<<"The participant's information:"<<endl;
                cout<<"ID:"<<E[a].ID<<endl;
                cout<<"Name:"+E[a].name<<endl;
                cout<<"Gender:"<<E[a].gender<<endl;
                cout<<"Age:"<<E[a].age<<endl;
                cout<<"Hand:"<<E[a].hand<<endl;
                
            }
        }
        
        if(cin.fail())
        {
        cout << "输入错误!请重新选择!" << endl;
        cin.clear();
        cin.sync();
            fflush(stdin);
        continue;
        }
    
    }
        
    }
    
    return 0;
}