세이브,로드 기능이 제대로 작동하질 않네요;;
나리
질문 제목 : 세이브,로드 기능이 제대로 작동하질 않네요;;세이브,로드 기능을 프로그램에 넣었는데 잘 않돼네요;;질문 내용 :
#include stdio.h
#include stdlib.h
#include time.h
int wi();
void work();
void rest();
void myreport();
void chexit();
void save();
main()
{
static int item[11];
static unsigned int fdate;
static unsigned int pratice;
static unsigned int money=100;
static unsigned int fmoney;
static unsigned int date=0;
static unsigned int hp=100;
static unsigned int fhp=100;
static char name[80];
int i4=0;
if(date==0)
{
int i1=0;
int i2=2;
int i3=0;
printf(===============================================================================);
printf(\n돈벌기 타이쿤 ver 0.1);
printf(\n===============================================================================);
while(i1==0)
{
printf(\n[1]처음 시작하기 \t [2]불러오기\n);
scanf(%d,&i1);
if(i1!=1&&i1!=2)
i1=wi(i1,0);
if(i1==2)
{
file *fp;
int i,p;
fp=fopen(d:dat1.sav,rt);
if((p=fgetc(fp))==eof)
{
printf(\n파일을 찾을수 없습니다.);
printf(\n===============================================================================);
i1=0;
}
for(i=0;i11;i++)
{
fscanf(fp,%5d,item[i]);
}
fscanf(fp,%6d%10d%10d%4d%4d%5d%5d,&pratice,&money,&fmoney,&date,&fdate,&hp,&fhp);
fclose(fp);
printf(\n불러오기를 성공했습니다.);
}
}
while(i1==1)
{
printf(\n===============================================================================);
printf(\n[1] 처음 시작하기를 선택하셨습니다.);
printf(\n===============================================================================);
while(i2==2)
{
printf(\n시작시 사용할 이름을 쓰시오 :);
scanf(%s,&name);
printf(\n%s가 맞습니까?,name);
printf(\n[1]예 [2]아니오\n);
scanf(%d,&i2);
if(i2!=1&&i2!=2)
i2=wi(i2,2);
}
printf(이름이 %s로 결정되었습니다.,name);
while(i3==0)
{
printf(\n===============================================================================);
printf(\n난이도를 선택하십시오.);
printf(\n[1]쉬움 [2]보통 [3]어려움 [4]help\n);
scanf(%d,&i3);
if(i3!=1&&i3!=2&&i3!=3&&i3!=4)
i3=wi(i3,0);
if(i3==1)
{
printf(\n[1]쉬움 난이도가 선택되었습니다.);
fdate=100;
fmoney=10000;
}
else if(i3==2)
{
printf(\n[2]보통 난이도가 선택되었습니다.);
fdate=80;
fmoney=12000;
}
else if(i3==3)
{
printf(\n[3]어려움 난이도가 선택되었습니다.);
fdate=60;
fmoney=14000;
}
else if(i3==4)
{
printf(\n===============================================================================);
printf(\n[1]쉬움: 기한 일수 100일, 목표 금액 10,000원\n);
printf(\n[2]보통: 기한 일수 80일, 목표 금액 12,000원\n);
printf(\n[3]어려움: 기한 일수 60일, 목표 금액 14,000원);
i3=0;
}
}
i1=0;
date=1;
}
}
while(i4==0)
{
if(date=fdate&&moneyfmoney)
{
int aa=0;
printf(%d일 내에 %d원을 채우지 못했습니다. 패배입니다.,fdate,fmoney);
while(aa==0)
{
printf(\n[1]종료 [2]재시작);
scanf(%d,&aa);
if(aa!=1&&aa!=2)
aa=wi(aa,0);
if(aa==1)
exit(0);
if(aa==2)
{
int ii1;
for(ii1=0;ii111;ii1++)
item[ii1]=0;
fdate=0;
pratice=0;
money=100;
fmoney=0;
date=0;
hp=100;
fhp=100;
&00;
main();
}
}
}
if(date=fdate&&money=fmoney)
{
int aa1=0;
printf(축하드립니다. %d일 내에 %d원을 채우셨습니다. 승리입니다.,fdate,fmoney);
while(aa1==0)
{
printf(\n[1]종료 [2]재시작);
scanf(%d,&aa1);
if(aa1!=1&&aa1!=2)
aa1=wi(aa1,0);
if(aa1==1)
exit(0);
if(aa1==2)
{
int ii1;
for(ii1=0;ii111;ii1++)
item[ii1]=0;
fdate=0;
pratice=0;
money=100;
fmoney=0;
date=0;
hp=100;
fhp=100;
main();
}
}
}
printf(\n===============================================================================\n);
printf(\t\t\t\t%d일 %d원 %d일 : 남은 기간 %d : 목표 금액,date,money,fdate,fmoney);
printf(\n「1」호미 %d 개 「2」도끼 %d 개 「3」전기톱 %d 개 「4」면장갑 %d 개\n「5」곡괭이 %d 개 「6」헤드 라이트 %d 개 「7」낚시대 %d 개 「8」망치 %d 개\n「9」용접기 %d 개 「10」삽 %d 개 [11]토지 %d ㎡,item[0],item[1],item[2],item[3],item[4],item[5],item[6],item[7],item[8],item[9],item[10]);
printf(\n===============================================================================\n);
printf([1]일하러 가기 [2]물건 사기 [3]내 정보 살펴보기 [4]세이브 [5]쉬기\n[6]도움말 [7]종료\n);
scanf(%d,&i4);
switch(i4)
{
case 1: work(item,&pratice,&hp,&money);
break;
case 3: myreport(pratice,hp,fhp,date,fdate,money,fmoney);
break;
case 4: save(item,pratice,hp,fhp,date,fdate,money,fmoney);
break;
case 5: rest(&date,&hp,fhp);
break;
case 7: chexit();
break;
default: printf(잘못된 입력입니다.);
break;
}
i4=0;
}
return 0;
}
int wi(wrongp,truep)
int wrongp,truep;
{
printf(\n잘못된 입력입니다.);
wrongp=truep;
return wrongp;
}
void work(item,pratice,hp,money)
int item[],*pratice,*hp,*money;
{
int ga=0;
int work1=0;
srand(time(null));
while(work1==0)
{
printf(\n===============================================================================\n);
printf([1]버섯 캐기 [2]벌목 하기 [3]농사 짓기 [4]돌아가기\n);
scanf(%d,&work1);
if(work1!=1&&work1!=2&&work1!=3&&work1!=4)
work1=wi(work1,0);
if(work1==1&&*hp=30)
{
int getmoney,pluspratice;
printf([1]버섯 캐기를 선택하셨습니다.);
printf(\n===============================================================================\n);
getmoney=rand()%31+10+item[10]*2+(*pratice)/30;
(*money)+=getmoney;
(*hp)-=30-item[0];
pluspratice=rand()%11+3+item[0];
(*pratice)+=pluspratice;
printf(%d의 금액을 얻었고 %d의 체력이 소모되었으며 %d만큼의 숙련도가 올라갔습니다.,getmoney,30-item[0],pluspratice);
while(ga==0)
{
printf(\n[1]돌아가기 [2]도움말 [3]종료\n);
scanf(%d,&ga);
if(ga!=1&&ga!=2&&ga!=3)
ga=wi(ga,0);
if(ga==1)
printf([1]돌아가기를 선택하셨습니다.);
if(ga==3)
chexit();
}
}
else if(work1==1&&*hp30)
{
printf(hp가 부족합니다.);
work1=0;
}
if(work1==2&&*hp=50)
{
int getmoney,pluspratice;
printf([2]벌목하기를 선택하셧습니다.);
printf(\n===============================================================================\n);
getmoney=rand()%41+20+item[10]*2+(*pratice)/20;
(*money)+=getmoney;
(*hp)-=50-item[1]-item[2]*2;
pluspratice=rand()%11+10+item[1]+item[2]*2;
(*pratice)+=pluspratice;
printf(%d의 금액을 얻었고 %d의 체력이 소모되었스며 %d만큼의 숙련도가 올라갔습니다.,getmoney,50-item[1]-item[2]*2,pluspratice);
while(ga==0)
{
printf(\n[1]돌아가기 [2]도움말 [3]종료\n);
scanf(%d,&ga);
if(ga!=1&&ga!=2&&ga!=3)
ga=wi(ga,0);
if(ga==1)
printf([1]돌아가기를 선택하셨습니다.);
if(ga==3)
chexit();
}
}
else if(work1==2&&*hp50)
{
printf(hp가 부족합니다.);
work1=0;
}
if(work1==4)
printf([4]돌아가기를 선택하셨습니다.);
}
}
void rest(unsigned int *date,int *hp,unsigned fhp)
{
printf(\n휴식을 취합니다);
(*date)++;
(*hp)=fhp;
}
void myreport(int pratice,int hp,int fhp,int date,int fdate,int money,int fmoney)
{
int bb=0;
printf(\n[3]내 정보 살펴보기를 선택하셨습니다.);
printf(\n===============================================================================\n);
printf(%d:경험치\t%d:체력\t%d:최대 체력\t%d:날짜\t&d:목표 일수\t%d:현재 금액\t%d:목표 금액,pratice,hp,fhp,date,fdate,money,fmoney);
printf(\n===============================================================================\n);
while(bb==0)
{
printf(\n[1]돌아가기 [2]도움말 [3]종료\n);
scanf(%d,&bb);
if(bb!=1&&bb!=2&&bb!=3)
bb=wi(bb,0);
if(bb==1)
printf([1]돌아가기를 선택하셨습니다.);
if(bb==3)
chexit();
}
}
void chexit()
{
int a=0;
while(a==0)
{
printf(\n===============================================================================\n);
printf(종료하시겠습니까?\n[1]예 [2]아니오\n);
scanf(%d,&a);
if(a!=1&&a!=2)
a=wi(a,0);
if(a==1)
exit(1);
}
}
void save(int item[],int pratice,int hp,int fhp,int date,int fdate,int money,int fmoney)
{
file *fp;
int i;
printf(저장하기를 선택하셨습니다.);
printf(\n===============================================================================\n);
fp=fopen(d:dat1.sav,wt);
for(i=0;i11;i++)
fprintf(fp,%5d,item[i]);
fprintf(fp,%6d,pratice);
fprintf(fp,%10d,money);
fprintf(fp,%10d,fmoney);
fprintf(fp,%4d,date);
fprintf(fp,%4d,fdate);
fprintf(fp,%5d,hp);
fprintf(fp,%5d,fhp);
fclose(fp);
printf(저장하기가 끝났습니다.);
}
위에 첫번째 보라색 글씨가 로드가
아래 save함수는 세이브 입니다;;
그런데 세이브가 다른곳에 될뿐 더러;; 갑자기 실행하다가 튕기네요;;
왜 그런가요;;
-
구슬
네;; 그런데 로드할때 튕기네요;;
-
핫레드
위에 rt형식 파일오픈함수에 잇는 주소도 저렇게 바꾸셧는지..
-
시나브로
앗;; 감사드립니다;;
세이브는 재대로 된 위치에 되는 것 같네요;;
그런데 로드에서 자꾸 튕기네요;; -
나오
D:\\\\dat1.sav
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |