ご教授頂けると幸いです。
<課題>
キーボードから何かキーが押されるごとに、現在の時刻を取得し1行ごとにファイルに記録していく。
5回記録したら一旦ファイルを閉じ、再び開いて1回ごとの時刻の差をファイルから読み取った値で平均を計算するプログラムを作成せよ。
・ファイルには年・月・日・自・分・秒をすべて一行で書き込むこと
・平均の時間は浮動小数点で算出すること。
以下のように作成したのですが、時刻がすべて同じになってしまいます。
プログラムをどのように修正したらよいでしょうか・・。
よろしくお願いいたします。
#define _CRT_SECURE_NO_WARNINGS
#include<time.h>
#include<stdio.h>
#include<conio.h>
char data_file[] = "datetime.dat";
void make_file(void)
{
FILE *fp;
if ((fp = fopen(data_file, "w")) == NULL)
printf("\aファイルをオープンできません。\n");
else {
fclose(fp);
}
}
void get_data(void)
{
FILE *fp;
if ((fp = fopen(data_file, "r")) == NULL)
printf("本プログラムを実行するのは初めてですね。\n");
else {
int year, month, day, h, m, s;
fscanf(fp, "%d%d%d%d%d%d", &year, &month, &day, &h, &m, &s);
printf("前回は%d年%d月%d日%d時%d分%d秒でした。\n", year, month, day, h, m, s);
fclose(fp);
}
}
void put_data(void)
{
FILE *fp;
time_t current = time(NULL);
struct tm *timer = localtime(¤t);
if ((fp = fopen(data_file, "w")) == NULL)
printf("\aファイルをオープンできません。\n");
else {
fprintf(fp, "%d %d %d %d %d %d\n", timer->tm_year + 1900, timer->tm_mon + 1, timer->tm_mday, timer->tm_hour, timer->tm_min, timer->tm_sec);
fclose(fp);
}
}
int main(void) {
make_file();
if (_getch())
get_data();
if (_getch())
get_data();
if (_getch())
get_data();
if (_getch())
get_data();
if (_getch())
get_data();
put_data();
}