从控制台输入C++,比较整数

Jaa*_*nus 1 c++ visual-studio-2010 visual-studio visual-c++

bool choose() {
    int answer = 0;
    while(answer != 1 || answer != 2) {
        cout << endl << "Do you want to encrypt(enter 1) or decrypt(enter 2)?" << endl;
        cin >> answer;
    }
    if(answer == 1) return true;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

从行读取并将输入与整数进行比较的最佳方法是什么?我知道的方式cin,gets,getline(cin, answer).我应该使用哪个以及为什么?

目前,这种方式不起作用,因为当我输入1或2时,它仍然存在while.

Ign*_*ams 10

你的病情不正确.根据德摩根的定律,你应该使用&&.

while(answer != 1 && answer != 2) {
Run Code Online (Sandbox Code Playgroud)


Mik*_*our 5

你正确地读取了这个值.但是,循环条件错误; 它应该是

while(answer != 1 && answer != 2)
Run Code Online (Sandbox Code Playgroud)

使用||使条件始终为真,因为没有数字等于1和2.