string number1,number2;
	std::cout<<tip[0]<<"\n"<<tip[1]<<std::endl;
	std::cin>>number1;
	 
	while(!isdigit(number1)){
		std::cout<<tip[5]<<std::endl;
		std::cin>>number1;
	}

	std::cout<<tip[2]<<std::endl

大概就是这个过程吧,会出现神马情况呢,如果cin接受的用户输入不是0~9而是其他呢. 我觉得木有亲手打过的童鞋100%说,循环判断是不是数字,不是就停下来等用户输入下一次. 那么好,扔VS里调试下吧.结果呢,无限循环吧..

原因 是什么呢.这里很明显嘛,为什么会循环,while嘛,为什么while会死循环,!isdigit(number1)成立.. 所以呢,number1,也就是从cin传递来的用户输入有问题. 有什么问题呢. typeid(number1).name(); 后得到一个反馈..嗯.char类型.. 那么如何解决呢? 我觉得加段小函数检查就可以了..

bool IsNumber(string s){
	const char *tmp = s.c_str();
	for(int i =0;i<s.length();i++)
	{
		if (tmp[i]>57||tmp[i]<48) return false;
	}
	return true;
}