"错误:不匹配'运算符>>'在' std :: cin>> ((Parardha *)此) - > Parardha ::移动' |"

时间:2015-04-04 16:08:52

标签: c++

好吧..我是初学者,因此需要帮助解决这个错误。 任何帮助都非常感谢:)

    #include<iostream>
class Parardha
{
private:
    char name[20];
    int mobile[11];
public:
    void ask()
    {
        std::cout<<"Your Name Please! :";
        std::cin >> name;
        std::cout<<"Aapka Phone No. : ";
        std::cin>> mobile;
    }
    void print()
    {
        std::cout<<"Your Name is";
        std::cout<<name<< std::endl;
        std::cout<<"Aur aapka mobile number hai";
        std::cout<<mobile<< std::endl;
    }
};
int main()
{
Parardha rocks;
rocks.ask();
rocks.print();
}

我从我的指南中试过这个,我似乎对C ++ 11一无所知!

1 个答案:

答案 0 :(得分:0)

正如Joachim Pileborg在评论中所说,mobile是整数数组,而不是一个可以容纳11位数的整数。 问题出在这里

int mobile[11];    

替换为

int mobile;

可能正在查看数组教程将有助于了解它们的工作原理。 http://www.cplusplus.com/doc/tutorial/arrays/

由于您还希望电话号码中只有11位数,因此您可以将移动设备存储到字符串中,然后将其转换为int。 像这样的东西

private:
    std::string name;      <-- see difference here
    std::string mobile;    <-- see difference here
public:
    void ask()
    {
       //your code
    }
    void print()
    {
        std::cout<<"Your Name is";
        std::cout<<name<< std::endl;
        std::cout<<"Aur aapka mobile number hai";
        std::istringstream sstream(mobile);    
        int cellNum;
        sstream >> cellNum;
        std::cout<<cellNum<< std::endl;
    }