我一直在用C ++编写基本的蛇游戏。我想在文本文件中存储前5个高分,这样我最终可以显示它们。
我只在这里显示相关代码。
代码: -
#include<fstream>
ofstream outfile("HighScore.txt");
ifstream infile("HighScore.txt");
int main()
{
int a[5]={0},temp;
infile.clear();
infile.seekg(0,infile.beg);
if(infile.is_open())
{
for(int i=0;i<=4;i++) infile>>a[i];
infile.close();
}
else cout<<"Unable to open";
char temp1;
Setup();
do
{
Draw();
Input();
Logic();
if(gameOver==0)
{
cout<<"\x1b[2J\x1b[1;1H"<<flush;
cout<<"\t\t\t\tSNAKE GAME"<<endl;
cout<<"\n\n\n\t\tYour score is:"<<score;
cout<<"\n\n\n\n\t\tDo you want to restart the game?\n\t\t Press y to continue\n\t\t";
temp1=(char)getch();
for(int i=4;i>=0;i--)//Used to make sure that the scores remain in a descending order
{
if(score>a[i])
{
if(i==4) a[i]=score;
else
{
temp=a[i];
a[i]=score;
a[i+1]=temp;
}
}
}
if(outfile.is_open())//Used to write the high-scores in "HighScore.txt"
{
for(int i=0;i<5;i++) outfile<<a[i]<<endl;
}
else cout<<"Unable to open";
outfile.close();
}
}
似乎编写文件的代码正常工作,输出始终是顶部的当前分数以及4 0&#39; s。 例如: - 如果我这次得分为5,那么输出就是 五 0 0 0 0
所以根据我的说法,我无法读取文件的当前值,因为数组a中的值始终为0。
[我是新来的,所以如果我的格式或说明不符合标准,我很抱歉]