如何修复表达式必须具有对象类型c ++

时间:2013-10-20 04:57:06

标签: c++

我的编码或数据类型存在问题。错误说“表达式必须具有指针对象类型”。我不知道如何解决这个问题。

#include <iostream>
#include <conio.h>

using namespace std;

int main() {
    int id, year, dates;

    cout << "Enter the ID number ";
    cin >> id;

    year = id[0] + id[1] + 1900;
    cout << year;
    getch();
    return 0;
}

拜托,有没有人知道你的解决方案?

3 个答案:

答案 0 :(得分:0)

你的id是一个int,但你像数组一样使用它:

id[0]+id[1]

答案 1 :(得分:0)

您将id声明为int,但随后尝试在其上使用[]运算符。编译器对此感到“困惑”,并且正在尽力通过在int上使用运算符来弄清楚你的意思 - 它能做到的最好就是告诉你表达式必须是指向对象的指针(换句话说,它告诉你它不能在int类型的东西上使用运算符 - 而应该是指针或对象。)

答案 2 :(得分:0)

您可以通过一些简单的数学运算来访问您的ID的各个数字:

#include <iostream>
using namespace std;

int main(void)
{
    int id = 189;

    cout << id / 100 % 10 << endl;
    cout << id / 10 % 10 << endl;
    cout << id / 1 % 10 << endl;

    return 0;
}

Yeilds: 1 8 9