求助:于while循环中通过cin输入string型导致cin被跳过
  • 板块学术版
  • 楼主BMGongsg1
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/10/7 14:08
  • 上次更新2023/10/27 08:19:54
查看原帖
求助:于while循环中通过cin输入string型导致cin被跳过
246095
BMGongsg1楼主2022/10/7 14:08

网络上面要么是关于通过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吗,这个跳过机制跟判断条件有什么关联吗

2022/10/7 14:08
加载中...