C++ “错误:与'std::cin>>((Parardha*)this)->Parardha::mobile'中的'operator>>'不匹配”
好的,我是初学者,因此需要帮助解决这个错误。 非常感谢您的帮助:C++ “错误:与'std::cin>>((Parardha*)this)->Parardha::mobile'中的'operator>>'不匹配”,c++,C++,好的,我是初学者,因此需要帮助解决这个错误。 非常感谢您的帮助: #include<iostream> class Parardha { private: char name[20]; int mobile[11]; public: void ask() { std::cout<<"Your Name Please! :"; std::cin >> name; std::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();
}
我从我的指南中尝试过,我的No.2似乎没有任何关于C++ 11的想法。p> 正如Joachim Pileborg在评论中所说,mobile是一个整数数组,而不是一个可以容纳11位数字的整数。 问题就在这里
int mobile[11];
取代
int mobile;
可能正在阅读的阵列教程将有助于理解它们是如何工作的。
由于您也只需要电话号码中的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;
}
成员变量mobile是由不同的11个整数组成的数组,而不是由11个数字组成的单个整数。std::istream&operator>>std::istream&is,int mobile[11]没有重载;除非你自己提供。std::ostream和OperatorTanks也一样,以便快速回复!我不太擅长这一点,所以请您具体说明我需要更改什么@谢谢你@sam2090以及Joachim和πάνταῥεῖ! 谢谢不过,这有一个小问题,特别是当OP输入11位数字时,输入运算符会将字符串终止符写入边界之外。更好地对name和mobile使用std::string@ParardhaSarmah@JoachimPileborg谢谢修好了