问题
在设置变量性别sex的值时,输入了3,按照原本的设置男为1,女为0,输入其他经过判断后应该跳过下面的代码,不再执行。
但奇怪的是,代码依然在执行,并且因为cin>>sex是写在循环内的,导致了死循环,而且后面的cin都不起作用了,不再给变量进行赋值了。
原因
sex变量设置的是bool数据类型,输入为3缓冲区类型转换有问题,导致cin的下标一直停在那里了
解决
重置缓冲区的错误标记+清空缓存区
cin.clear();//重置标记位
cin.syne();//清空缓冲区
//同时cin.fail()还可以看标志位 0正常 1不正常