課題提出C言語

今日は1年生のC言語の授業がありました。
今まで習ったところまでの内容でプログラムを自由に作って提出せよという課題をだしたのですが、習った部分に忠実なプログラムを作成する学生もいれば、ネットで検索して習っていない箇所に挑戦する学生もいたりと様々でした。

わたしもその時間に作ってみました。
簡易メモです。

smemo.c

/* smemo.c: 簡易メモ */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
	FILE *fp;

	time_t timer;
	struct tm *local;

	char memo[1024];
	int year, month, day;
	
	/* 現在時刻を取得し地方時に変換 */
	timer = time(NULL);
	local = localtime(&timer);
	
	/* 年月日を取得 */
	year = local->tm_year + 1900;
	month = local->tm_mon + 1;
	day = local->tm_mday;
	
	/* 保存用ファイルを追加形式で開く */
	fp = fopen("smemo.txt", "a");
	if(fp == NULL){
		printf("ファイルがオープンエラー\n");
		exit(1);
	}
	
	/* メモ内容を入力させる */
	printf("メモ? ");
	scanf("%s", memo);
	
	/* メモを書き込み */
	fprintf(fp, "%4d/%02d/%02d| %s\n", year, month, day, memo);

	/* ファイルを閉じる */
	fclose(fp);
	
	return 0;

}

実行イメージ

メモ? 今日は金曜日 [Enter]

こんな感じでメモをキーボードから入力するとファイルにはこう書き込まれます。

2018/10/31| スイカを割った
2018/11/01| トマトを食べた
2018/11/02| 今日は金曜日

書き込んだ日付とともファイル保存される仕組みです。
C言語では現在時刻が取得できるtime関数struct tm構造体を使って現地時間を取り出すことが出来ます。
丁度ファイル書き込みを勉強していたので組み合わせてみました。

プログラム人生組み合せで色んなバリエーションが楽しめますね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です