 _strtime関数のセキュリティ強化バージョンに_strtime_s関数というのが
あります。VS2005以降でないと使用できません。
_strtime関数のセキュリティ強化バージョンに_strtime_s関数というのが
あります。VS2005以降でないと使用できません。
errno_t _strtime_s( char *buffer, size_t sizeInBytes );bufferに、現在時刻が出力されます。
sizeInBytesは、bufferのサイズです。
/* strtime01.c */
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <windows.h>
int main()
{
	char szMytime[16], szOldtime[16] = "";
	COORD cPos;
	HANDLE hOut;
	cPos.X = 2;
	cPos.Y = 2;
	hOut = GetStdHandle(STD_OUTPUT_HANDLE);
	while (!_kbhit()) {
		SetConsoleCursorPosition(hOut, cPos);
		_strtime_s(szMytime, sizeof(szMytime));
		if (strcmp(szOldtime, szMytime) != 0) {
			printf("%s\n", szMytime);
			strcpy_s(szOldtime, sizeof(szOldtime), szMytime);
		}
	}
	return 0;
}
コンソール・アプリケーションでカーソル位置を指定するには、SetConsoleCursorPosition関数を使います。これは、すでに第59章でやりました。このプログラムでは、_strtime_s関数でszMytimeに現在時刻を取得します。次にszOldtimeと比較し、異なればszMytimeを指定の位置に表示します。そして、szOldtimeに現在時刻をコピーします。
これを永久ループ内で繰り返します。 何かキーが押されると、ループを抜けてプログラムが終了します。
実行結果は、次のようになります。
 
Update Sep/04/2007 By Y.Kumei