网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月02日漏签0天
c++吧 关注:631,368贴子:2,113,957
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 5回复贴,共1页
<<返回c++吧
>0< 加载中...

求助:C++游戏编程的存档问题

  • 只看楼主
  • 收藏

  • 回复
  • 月影哀笛
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请问怎么把一个类里所有的私有成员(含字符串及整型变量)全部以文本或二进制输出,然后怎么再次从文本中把这些信息读入?


  • CIW_BLUE
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
把整个类写到文本中
ifstream.wirte((char*)&cGameCls, sizoef(CGameClass));

读也一样的


2025-09-02 20:21:09
广告
不感兴趣
开通SVIP免广告
  • 月影哀笛
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不可以啊~~能不能帮我看看这段程序是哪出错了么?怎么就是无法连名字带等级之类都存进去呢?
#include<iostream.h>
#include<fstream.h>
#include<string.h>
class Human
{
char Name[20];
int LV,HP;
public:
Human()
{
LV=1,HP=100;
}
void GetName(char *na)
{ strcpy(Name,na);}
void ShowState()
{
cout<<"角色名:"<<Name<<endl;
cout<<"等级: "<<LV<<endl;
cout<<"生命: "<<HP<<endl;
}

}player;
void Save()
{
fstream file("save.dat",ios::out|ios::binary);
if(!file)
{
cout<<"存档出错"<<endl;
}
file.write((char*)&player,sizeof(player));
file.close();
}
void Load()
{
fstream file;
file.open("save.dat",ios::in|ios::binary|ios::nocreate);
if(!file)
{
cout<<"读档出错"<<endl;
}
file.read((char*)&player,sizeof(player));
file.close();
}
void main()
{
Human player;
char name[20];
cout<<"请输入主角的名字:";
cin>>name;
player.GetName(name);
int i=0;
while(i<4)
{
cout<<"请问您需要存档还是读档? 0:Check 1:存档 2:读档 3.改名 4.Exit"<<endl;
cin>>i;
switch(i)
{
case 0: player.ShowState();break;
case 1: Save();break;
case 2: Load();break;
case 3: 
cout<<"请输入主角的名字:";
cin>>name;
player.GetName(name);
break;
default:
cout<<"退出";


}
}
player.ShowState();
}


  • CIW_BLUE
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;

class CPlayer
{
private:
char szName[100];
int nHP;

public:
CPlayer()
{
strcpy(szName, "CIW");
nHP = rand()%100 + 50;
}

void OutputInfo()
{
cout<< this->szName <<endl;
cout<< this->nHP <<endl;
}
};

void Save(CPlayer* lpPly)
{
ofstream out("Info.dat");
out.write((char*)lpPly, sizeof(CPlayer));
out.close();
}

void Load(CPlayer* lpPly)
{
ifstream in("Info.dat");
in.read((char*)lpPly, sizeof(CPlayer));
in.close();
}
int main()
{
srand(time(0));
for( int i = 0; i < 5; i++)
{
CPlayer cPly;
Save(&cPly);
Load(&cPly);
cPly.OutputInfo();
cout<<endl;
}
return 0;
}


快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
heh


快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
file.write((char*)&player,sizeof(player)); 

player只是类的一个对象 该用this指针


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 5回复贴,共1页
<<返回c++吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示