请问:请帮忙看看小弟我这个读写文件的C++程序是不是有有关问题
请教:请帮忙看看我这个读写文件的C++程序是不是有问题?
这是一个我用Windows SDK编的贪食蛇游戏里保存和载入游戏的函数,Snake和apple都是全局变量,程序运行时点菜单的保存游戏时调用SaveGame函数,点载入游戏时调用LoadGame函数,devc++4.9.9.2编译通过.
//保存游戏,保存Snake和apple,成功返回true,失败返回false
bool SaveGame(void)
{
ofstream mysave( "save.snk ");
int i;
if(mysave.fail())
{
return false;
}
//存放蛇的长度
mysave < <iLength < <endl;
//存蛇的结构
for(i = 0; i <iLength; i++)
mysave < <Snake[i].x < < " " < <Snake[i].y < <endl;
if(mysave.bad())//如有致命错误返回false
{
return false;
}
//存果子的位置
mysave < <apple.x < < " " < <apple.y < <endl;
if(mysave.bad())//如有致命错误返回false
{
return false;
}
mysave.close();
return true;
}
//载入游戏,成功返回true,错误返回false
bool LoadGame(void)
{
ifstream myload( "save.snk ");
if(myload.fail())
{
return false;
}
int len,i;
myload> > len; //载入蛇的长度
if(myload.bad())//如有致命错误返回false
{
return false;
}
iLength = len;
for(i = 0; i <len; i++)//载入蛇的结构
myload> > Snake[i].x> > Snake[i].y;
myload> > apple.x> > apple.y; //载入果子的位置
if(myload.bad())//如有致命错误返回false
{
return false;
}
myload.close();
return true;
}
但是有个问题,游戏开始后先点保存再点载入什么问题都没有,但是如果点了保存后退出,在启动游戏后直接点载入游戏(这样我下次开机就可以接着上次的玩),就会一长串对话框,内容都一样:
“Microsoft Visual C++ Runtime Library
Runtime Error:
这是一个我用Windows SDK编的贪食蛇游戏里保存和载入游戏的函数,Snake和apple都是全局变量,程序运行时点菜单的保存游戏时调用SaveGame函数,点载入游戏时调用LoadGame函数,devc++4.9.9.2编译通过.
//保存游戏,保存Snake和apple,成功返回true,失败返回false
bool SaveGame(void)
{
ofstream mysave( "save.snk ");
int i;
if(mysave.fail())
{
return false;
}
//存放蛇的长度
mysave < <iLength < <endl;
//存蛇的结构
for(i = 0; i <iLength; i++)
mysave < <Snake[i].x < < " " < <Snake[i].y < <endl;
if(mysave.bad())//如有致命错误返回false
{
return false;
}
//存果子的位置
mysave < <apple.x < < " " < <apple.y < <endl;
if(mysave.bad())//如有致命错误返回false
{
return false;
}
mysave.close();
return true;
}
//载入游戏,成功返回true,错误返回false
bool LoadGame(void)
{
ifstream myload( "save.snk ");
if(myload.fail())
{
return false;
}
int len,i;
myload> > len; //载入蛇的长度
if(myload.bad())//如有致命错误返回false
{
return false;
}
iLength = len;
for(i = 0; i <len; i++)//载入蛇的结构
myload> > Snake[i].x> > Snake[i].y;
myload> > apple.x> > apple.y; //载入果子的位置
if(myload.bad())//如有致命错误返回false
{
return false;
}
myload.close();
return true;
}
但是有个问题,游戏开始后先点保存再点载入什么问题都没有,但是如果点了保存后退出,在启动游戏后直接点载入游戏(这样我下次开机就可以接着上次的玩),就会一长串对话框,内容都一样:
“Microsoft Visual C++ Runtime Library
Runtime Error: