求教:读写文件问题(猜数字游戏中遇到的问题)
代码功能描述:这是一个猜数字游戏。电脑随机产生一个四位数,玩家根据提示猜这个四位数。并记录猜数字次数最少的人的名字和次数。可连续猜数。
遇到的问题:
如何在关闭程序以后,再次运行程序时,程序依然保留上次运行时猜测数字的最少次数的人和次数。
求实现完整功能
#include<stdio.h>
#include<stdlib.h>
#include<time.h>/*将函数time所需要的头文件time.h包含到程序中*/
void main()
{
printf("********************************************************************************\n");
printf(" ~这是一个猜数字游戏~ \n");
printf(" \1 _ \1 ~祝君好运~ \2 _ \2 \n\n");
//printf("\1 \1 祝君好运 \2 \2\n\n");
printf("********************************************************************************\n");
int magic;
int guess;
int i1,i2,i3,i4;/*定义电脑随机产生数字的千位i1、百位i2、十位i3、个位i4*/
int j1,j2,j3,j4;/*定义人猜想的数字的千位j1、百位j2、十位j3、个位j4*/
int count=0;
int mincount=1000;
char a[30],m;
/*FILE *tp=fopen("D:\\ri.txt","a+");
fscanf(tp,"%d",mincount);
fclose(tp);
printf("%d",mincount);*/
loop:
srand (time (NULL) );
magic=rand()%9000+1000;/*调用rand函数随机产生一个1000到9999之间的四位数*/
//printf("%d\n",magic);
/*分离电脑随机产生数字的各个位上的数字*/
i1=magic/1000;
i2=(magic-i1*1000)/100;
i3=(magic-i1*1000-i2*100)/10;
i4=magic%10;
//printf("%d,%d,%d,%d\n",i1,i2,i3,i4);
//printf("********************************************************************************\n");
do{
printf("请输入您心中猜想的数字:");
scanf("%d",&guess);
printf("\n\n");
printf("********************************************************************************\n");
/*分离人所猜想的数字的各个位上的数字*/
j1=guess/1000;
j2=(guess-j1*1000)/100;
j3=(guess-j1*1000-j2*100)/10;
j4=guess%10;
//printf("%d\n",guess);
count++;/*计数器加1*/
if(j1==i1)
printf("千位上的数字正确!\n");
else
printf("千位上的数字错误!\n");
if(j2==i2)
printf("百位上的数字正确!\n");
else
printf("百位上的数字错误!\n");
if(j3==i3)
printf("十位上的数字正确!\n");
else
printf("十位上的数字错误!\n");
if(j4==i4)
printf("个位上的数字正确!\n");
else
printf("个位上的数字错误!\n\n");
printf("********************************************************************************\n");
}while(guess!=magic);
//printf("********************************************************************************\n");
printf("恭喜您,猜对了!");
printf("您一共猜了%d次\n\n",count);
if(count<=mincount)
{
printf("请输入您的姓名:\n");
scanf("%s",a);
mincount=count;
count=0;
}
printf("********************************************************************************\n");
printf("最少次数得主:%s\n",a);
printf("所用次数:%d\n",mincount);
/*FILE *fp=fopen("D:\\ri.txt","w");
fprintf(fp,"%d",mincount);
fclose(fp);*/
printf("********************************************************************************\n");
printf("你想继续吗?继续请按“y”或者“Y”退出请按“n”或者“N”\n");
getchar();
scanf("%c",&m);
if(m=='y'||m=='Y')
{
goto loop;
}
}