時計の作り方2
C言語ケーススタディ

Study C Ver2販売開始のお知らせ

 C言語の勉強や教育用に最適です。
 2004/8/23よりStudy C Ver2の販売を開始しました。
 Study C Ver2の新しい機能については
 こちらをご参照ください。
C言語でゲームプログラマーを目指す方へ
 ■C言語ゲームプログラミング講座
 C言語でのゲームプログラミングを解説する講座
 始めました。

前回作成したプログラムでは一秒ごとに日時がスクロールしながら表示していくものです。 これを画面のほぼ中央に表示して、その部分が更新されていくように変更します。 画面上の指定位置に文字を表示するのはエスケープシーケンスを使用します。 Study Cユーザーの方はエスケープシーケンスについての説明があるので、特別C言語講座文字表示で作ったゲームの基礎(画面の好きな位置に文字を表示)を参照してください。


#include <stdio.h>
#include <time.h>

main()
{
	static char
		*week[] = {"日", "月", "火", "水", "木", "金", "土"};
	time_t  now, prev;
	struct tm
		*tm_now;

	printf("\033[2J");
	prev = -1;
	for(;;){
		now = time(NULL);
		if(prev == now)
			continue;
		prev = now;
		tm_now = localtime(&now);
		printf("\033[10;30H");
		printf("%4d年%2d月%2d日 %s曜日\n",
			tm_now->tm_year+1900, tm_now->tm_mon+1, tm_now->tm_mday,        
			week[tm_now->tm_wday]);
		printf("\033[11;30H");
		printf("%2d時%2d分%2d秒\n",
			tm_now->tm_hour, tm_now->tm_min, tm_now->tm_sec);
	}
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

最後にESCキーを押すとプログラムが終了するようにします。 kbhit関数とgetch関数を使用します。 Study Cユーザーの方はこれらの関数についての説明があるので、専用講座文字表示で作ったゲームの基礎(カーソルキーを押していない間に処理を行う)を参照してください。


#include <stdio.h>
#include <time.h>

main()
{
	static char
		*week[] = {"日", "月", "火", "水", "木", "金", "土"};
	time_t  now, prev;
	struct tm
		*tm_now;

	printf("\033[2J");
	prev = -1;
	for(;;){
		if(kbhit()){
			if(getch() == 0x1B)
				break;
		}
		now = time(NULL);
		if(prev == now)
			continue;
		prev = now;
		tm_now = localtime(&now);
		printf("\033[10;30H");
		printf("%4d年%2d月%2d日 %s曜日\n",
			tm_now->tm_year+1900, tm_now->tm_mon+1, tm_now->tm_mday,        
			week[tm_now->tm_wday]);
		printf("\033[11;30H");
		printf("%2d時%2d分%2d秒\n",
			tm_now->tm_hour, tm_now->tm_min, tm_now->tm_sec);
	}
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

お問い合わせ先 C言語のトップページに戻る Copyright(C) 2003 潟Iーキッド