为什么我不能在"if"语句中将整数放在前面

Rit*_*ikK 2 c++

当我把零点放在它前面时,为什么我的小作弊码不起作用.当我取出零并将小作弊码放入其中时工作得很好.然而,当我把零和使用作弊代码 - 它将跳过正确.

#include <iostream>
#include <random>

int main() {
    bool correct = false;
    std::cout << "Put a Number from 1 to 100" << std::endl;
    int guess = 0;
    std::cin >> guess;
    std::random_device rd;
    std::mt19937 mt(rd());
    std::uniform_int_distribution<int> rnd(0, 101);
    int answer = rnd(mt); //random number
    while (correct == false)
    {
        if (guess == answer)
        {
            std::cout<<"You got it!!!"<<std::endl;
            correct = true;
        }
        else if (guess == 01010101)#<--------------------Problem
        #it works when it is 1010101
        {
            std::cout<< answer<< std::endl;
            std::cout << "Put a Number from 1 to 100" << std::endl;
            std::cin >> guess;
        }
        else if (guess > answer)
        {
            std::cout<<"Your guess is to high guess again"<< std::endl;
            std::cout << "Put a Number from 1 to 100" << std::endl;
            std::cin >> guess;
        }
        else if (guess < answer)
        {
            std::cout<<"Your guess is to low guess again"<< std::endl;
            std::cout << "Put a Number from 1 to 100" << std::endl;
            std::cin >> guess;
        }

        else
        {
            std::cout << "Put a Number from 1 to 100" << std::endl;
            std::cin >> guess;
        }


    }
}
Run Code Online (Sandbox Code Playgroud)

cdh*_*wie 14

数字文字的前导零表示文字以八进制(基数8)表示法1表示,其(显然)具有与解释为十进制(基数10)的相同数字不同的量值.

八进制数01010101等于十进制数266305.


1除非前导零后跟a x,否则它被解释为十六进制(基数为16).