날짜 불러들여서 메모 입력하고
나중에 또 메모 확인하고
그래서 대충 이런식으로 짯거든
#include<stdio.h>
#include<string.h>
#define MAXMEMO 500
#define MAXNUM 1000
struct date
{
int year;
int month;
int day;
};
struct memo
{
struct date d;
char content[MAXMEMO];
};
struct memo AddContent()
{
struct memo m;
printf(\"년 : \");
scanf(\"%d\", &m.d.year);
printf(\"월 : \");
scanf(\"%d\", &m.d.month);
printf(\"일 : \");
scanf(\"%d\", &m.d.day);
printf(\"내용 : \");
scanf(\"%s\", m.content);
return m;
}
struct memo note[MAXNUM];
void ShowMemo(struct date d)
{
int c=0;
int p=0;
printf(\"년 : \");
scanf(\"%d\", &d.year);
printf(\"월 : \");
scanf(\"%d\", &d.month);
printf(\"일 : \");
scanf(\"%d\", &d.day);
for(c=0; c<MAXNUM; c++)
{
if(d.year==note[c].d.year && d.month==note[c].d.month && d.day==note[c].d.day)
{
printf(\"%d년 %d월 %d일 메모 내용 \\n\",note[c].d.year,note[c].d.month, note[c].d.day);
printf(\"메모내용 : %s\\n\\n\",note[c].content);
p=0;
}
else
p=1;
}
}
int PrintMenu()
{
int a=0;
printf(\"메뉴를 선택하시오.\\n\");
printf(\"1. 다이어리 내용 추가 \\n\");
printf(\"2. 메모 보기 \\n\");
printf(\"3. 종료 \\n\");
printf(\"입력 : \");
scanf(\"%d\", &a);
return a;
}
int main()
{
struct date date;
date.day=0;
date.month=0;
date.year=0;
int num=0;
int a=0;
int c=0;
while(a!=3)
{
a = PrintMenu();
switch(a)
{
case 1:
note[num] = AddContent();
num++;
break;
case 2:
ShowMemo(date);
break;
case 3:
break;
default:
printf(\"잘못된 입력입니다. \\n\");
break;
}
}
return 0;
}
근데
달 1~12안의 값 입력이랑 날짜 1~30 사이 입력 제한 걸어야 되고 그리고 메모가 버퍼안에 없으면 메모가 없다고 출력해줘야 하는데 어떡하지 ㅠㅠ 떠오르지가않음
그리고 메모내용 500바이트 내로 제한이라는거는 바이트 크기 표현부 잘 기억안나서 그냥 배열로 500으로 크기 했는데 이거 바이트로 어케 표현할까
도와줘 형들
소스를 보지는 않았음-_-한글이해력이 딸려서 질문도잘이해못하겠음 ㅋ///if로 범위 넘어가는거 비교해서 안넘어갈때만 처리해주면되고 메모내용도 문자열 길이 체크해서 해줘야할듯,,메모리범위넘어가는걸 알아서 막아주지않음...