请问为什么我明明最后写了else,代表人家没有输入数字,如果输入了其他符号或字母的话应该显示 请输入正确分数 呀,怎么还是输出E呢

问请问为什么我明明最后写了else,代表人家没有输入数字,如果输入了其他符号或字母的话应该显示 请输入正确分数 呀,怎么还是输出E呢

img


题遇到的现象和发生背景

用代码块功能插入代码,请勿粘贴截图

当你输入x时,`std::cin>>score;`输入出错,score的值未变,仍然是初始值0。这样条件`score>=0 && score <60`满足,故输出E

可以改成

std::cin >> score;

if (!std::cin || score < 0 || score >100) {

    std::cout << "请输入正确分数\n";

}