我几天前开始学习C ++。
我想使用用户输入设置dog.age
。
#include <iostream>
using namespace std;
class dog{
public:
dog();
~dog();
int getAge();
void setAge(int a);
protected:
int age;
};
dog::dog(){
}
dog::~dog(){
}
int dog::getAge(){
return age;
}
void dog::setAge(int a){
age = a;
}
int main(){
dog myDog;
char myString[2];
int age;
cout<<"How old is the dog? ";
cin.getline(myString,2,'\n');
age = (int)myString;
myDog.setAge(age);
cout<<"The dog is "<<myDog.getAge()<<" years old!\n";
return 0;
}
但是我收到了这个错误:
error: cast from ‘char*’ to ‘int’ loses precision [-fpermissive]
age = (int)myString;`
即使我删除(int)
,也会失败。
为什么我的程序不会myString
成为int
?
可选:如果我在构建课程时遇到其他问题,请随时告诉我。我想早点养成坏习惯。
答案 0 :(得分:1)