while循环与字母字符有关

时间:2014-12-22 20:26:58

标签: c++

我目前正在尝试理解为什么我的代码出现了这个问题,我不知道如何解决这个问题。

int main()
{
    char answer;
    std::cin >> answer; // valid input is a, b, c or d
    while(answer > 'd') // doesn't enter no matter what letter I input
    {
        retry(); // function call to print something long..
        std::cin >> answer;
    }
    //rest of code not shown since everything is fine after this problem;
}

我的这个程序的目标是让用户输入字母a,b,c或d,之后它将触发一个"开关'功能。所以我想我可以只有一个while循环,一直要求用户输入一个有效的字母,如果他们输入一个不允许的。但是,它似乎没有用?

问题:我希望while循环在大于' d'输入,但无论我输入什么字母,循环都不会发生。

1 个答案:

答案 0 :(得分:1)

关于流IO的一些常见错误是:

  1. 测试eof
  2. 提取后忽略流的状态
  3. 与(2)类似,检查结果(可能不是 改变的)
  4. 关于2和3的失败。