C++余数在更高的数字处返回7

Sul*_*rif 1 c++

所以我仍然是编程和尝试学习C++的新手,所以慢慢搞清楚.

现在我正在尝试尝试信用卡号码问题,并尝试隔离数字中的每个数字.

using namespace std;
int main()
{
    int creditcardnumber;
    cout << "Enter a 16-digit credit card number: "; // asks for credit       card number
    cin >> creditcardnumber;
    cin.ignore();
    int d16 = creditcardnumber % 10;

    cout << d16;

} 
Run Code Online (Sandbox Code Playgroud)

在较低的数字像:123456它返回6这是我想要的但是在更高的数字,如:12387128374它返回7我开始注意到它每次在更高的数字时仍然返回7可以任何人解释这个以及如何解决它?

Dav*_*aim 5

那是因为int的最大值(假设int大小是4个字节)是2147483647.你的测试到目前为止超过了它.尝试使用更大的类型,如长.