将文本文件读入类变量 - c++
Read text file into class variable - c++
所以...我试图制作一个游戏内商店系统,从文件中读取玩家的帐户余额.txt但我遇到了这个非常奇怪的问题
所以。这个 int 工作得很好。它从文件中读取数据,将字符串转换为数值,然后将其打印出来。
int main() {
int money;
string cash;
ifstream playerdata;
playerdata.open("player.txt");
if (playerdata.is_open()) {
getline(playerdata,cash);
money = atoi(cash.c_str());
} else cout<<"error";
return money;
}
虽然这个没有。它总是打印出现金等于 0。
class Player {
int money ;
string cash;
public:
GetMoney();
int PrintMoney() {return atoi(cash.c_str());};
};
Player::GetMoney(){
int money;
string cash;
ifstream playerdata;
playerdata.open("player.txt");
if (playerdata.is_open()) {
getline(playerdata,cash);
money = atoi(cash.c_str());
playerdata.close();
} else cout<<"error";
}
int main() {
Player a;
cout<<"Your Money: "<<a.PrintMoney()<<"$";
};
您在main
中的逻辑如下:
- 创建类型
Player
的a
。 - 在
a
上调用PrintMoney()
函数。
PrintMoney
函数的实现不会调用GetMoney
函数。在这种情况下,cash
是一个空字符串。在这个空字符串上调用c_str
将导致一个空值被传递给atoi
,这将返回一个0。
根据域,这似乎是正确的。玩家还没有钱。也许在声明a
之后,您需要调用a.GetMoney()
,但是您的代码还有其他问题,这意味着这不太有效。
GetMoney
函数中的money
和cash
变量将覆盖Player
类中的变量。您应该删除这些。
相关文章:
- 查找后更改类变量
- 如何避免在仅标头库中C++类/变量重定义
- c++ 在非类函数中使用类变量
- 基于模板的类变量
- 分段 访问私有类变量时出错
- 为什么从另一个构造函数内部调用C++构造函数不修改类变量?
- 如何访问基类向量中的子类变量?(对于实体组件系统)
- 模板类变量作为非模板类的成员
- C++11 - 获取编译时的所有类变量,并在没有 Boost 的情况下为它们调用方法
- 如何在构造函数中访问类变量以分配它们,而无需在C++中使用此指针
- 类变量无法从类方法访问
- 指针作为类变量 Qt
- 为什么线程对类变量所做的更改没有影响?
- memcpy() 在一个类中被调用以复制到另一个类变量中后会引发异常
- C++:使用基类中的仅派生类变量
- 从静态成员函数访问私有非静态类变量 - C++
- 静态类变量的多重定义
- 使用 WindowSetup 类变量获取错误
- 将文本文件读入类变量 - c++
- 获取作为类变量的 Deque 大小时未定义的行为