まだ初心者の私です。
ちょっと困っておりまして、皆様の知恵を貸していただきたいと思います。
西暦、月を入力したら、カレンダーが表示され。
日付を入力すると、その日にちにメモが書き込め。
*でその日はメモを書いたとわかる。
また、読み込みでそのメモが開ける。
この時のファイルの入出力は主にtxtファイル。
そして、入力して失敗などして入力しても、一回一回前に戻ることもでき、指定のキーを押すと途中終了もできる。
私のだと「b」で戻る、「g」次へ、「c」でカレンダのチェック、「x」でプログラムの強制終了。
とくにこれから先のファイルRead、Writeの部分をどうコーディングすればいいのかわかりません。
また、一回一回の入力ごとに前に戻れたり指定のキーで終了も、どのようにすればいいのか・・・
今現在の進行状況として西暦と月の入力部分だけです。
西暦と月も関数化して分けたほうがいいのでしょうか?
int main(void)
{
int year,month;
char i,n=0,str[256];
printf("* * * * *「 M E N U 」* * * * * * * * * *\n");
printf("* 一つ前に戻りたい場合は「b」を入力 *\n");
printf("* 続けたい場合は「g」を入力 *\n");
printf("* カレンダーの確認は「c」を入力 *\n");
printf("* プログラムの終了は「x」を入力 *\n");
printf("* * * * * * * * * * * * * * * * * * * * *\n\n");
/*西暦の入力*/
while(1)
{
printf("西暦を入力してください(1970年から2038年まで有効)>>");
scanf("%d", &year);
fflush(stdin);
if(year > 1969 && year < 2039)
{
n = select(n);
}
else
{
n = error(n);
continue;
}
break;
}
int n=0;
/*月の入力*/
while(1)
{
printf("月を入力してください>>");
scanf("%d", &month);
fflush(stdin);
if((month > 0) || (month > 13))
{
n = select(n);
}
else
{
n = error(n);
continue;
}
break;
}
return 0;
}
select関数ですが。
int select(int out)
{
char n=0,str[256];
printf("次の操作を「MENU」から選んでください\n");
scanf("%255[^\n]%*[^\n]",str);
getchar();
if(strlen(str) == 1)
{
n = str[0];
}
if(n == 'b')
{
「」;
}
else if(n == 'g')
{
「」;
}
else if(n == 'c')
{
「」;
}
else if(n == 'x')
{
「」;
}
else
{
「」;
}
return 0;
}
とくに「」の部分をどうしようかと思ってます。
西暦入力後に「b」の方では[これ以上は戻れない]なんて文もでるようにしたいのです。
長い文ですがどうかよろしくお願いします。