网络上面要么是关于通过cin输入int型被跳过的,要么是告诉你要通过输入string型避免被跳过的,但是我string型怎么还是给跳过了
下面是代码(其中compare函数后面缺少==0,加上就不会跳过了)
int main()
{
n=1;
int i=1;
string x;
int key;
while(x.compare("end")!=0)
{
x="0";
cin>>x;
if(x.compare("insert"))
{
cin>>key;
insert(key);
i++;
cout<<"111"<<endl;
}
else if(x.compare("extract"))
{
cout<<heapExtractMax()<<endl;
}
}
return 0;
}
输入第一次insert的时候是正常的,当输入第二次insert的时候就会跳过cin,直接进入if,并循环输出“111”;
正常不是应该虽然判断条件有问题,但是还是会先让你输入string吗,这个跳过机制跟判断条件有什么关联吗