用了断点看程序在哪里出错的
是cin>>s这里在输入被试信息后再回来时就无法输入了
呈现这个错误一直重复
程序内容具体如下:
#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;
}