ストップウォッチ作成

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ナナイ

ストップウォッチ作成

#1

投稿記事 by ナナイ » 18年前

はじめまして。
C言語の実力は初心者程度なのですが質問があります。
題の通りなのですが、ストップウォッチって作成可能ですか?
クリックするとカウントを開始して、もう一回クリックすると止まる。
という感じで作りたいのですが。

管理人

Re:ストップウォッチ作成

#2

投稿記事 by 管理人 » 18年前

ストップウォッチは簡単に出来ますよ。

time.hをインクルードすることで使えるようになるclock関数を使って今の時間を取得し、
今の時間 - 過去に取得した時間
を計算すればその間の時間が出ます。
#include <stdio.h>
#include <time.h>

int main(){
	clock_t t;
	printf("エンターを押してください。\n");
	getchar();//入力を待つ
	t = clock();//時間を格納
	printf("計測中。エンターを押してください。\n");
	getchar();//入力を待つ
	printf("%.3f秒\n",(clock()-t)/(double)CLOCKS_PER_SEC);
}

バグ

Re:ストップウォッチ作成

#3

投稿記事 by バグ » 18年前

あら?先を越されてしまいましたか…(苦笑)
せっかくなので、乗せておきます。
#include	<time.h>
#include	<conio.h>
#include	<stdio.h>

clock_t	Elapse(clock_t Start);
void	Start(clock_t* pStart);

int main(void)
{
	clock_t	ctStart, ctNowTime = 0;

	while (ctNowTime <= 99999)
	{
		Start(&ctStart);

		while (kbhit() == 0)
		{
			printf("%.3f\r", (double)((ctNowTime + Elapse(ctStart)) / 1000.0f));
		}

		getc(stdin);
		ctNowTime += Elapse(ctStart);

		while (kbhit() == 0);
		getc(stdin);
	}

	return 0;
}

// 計測開始
void Start(clock_t* pStart)
{
	*pStart = clock();
}

// 経過時間(msec)
clock_t Elapse(clock_t ctStart)
{
	return (clock_t)((double)(clock() - ctStart) / (double)(CLOCKS_PER_SEC / 1000.0f));
}

バグ

Re:ストップウォッチ作成

#4

投稿記事 by バグ » 18年前

おっと、失礼、<conio.h>は標準関数ではなかったですね。
Windows上では動くはずですが、それ以外の環境では動かないと思います(^_^;)

Hermit

Re:ストップウォッチ作成

#5

投稿記事 by Hermit » 18年前

VB の様ですが、ソースまで付いてきます。
http://www.vector.co.jp/soft/dl/win95/p ... 46014.html
C、C++ にするのも難しくはなさそうに思います

tk-xleader

Re:ストップウォッチ作成

#6

投稿記事 by tk-xleader » 18年前

>クリックするとカウントを開始して、もう一回クリックすると止まる。

クリックとなるとAPI使わなきゃ無理です。とりあえずサンプルプログラム組んで見ましたので、(WinAPIです)ご覧下さい。

ナナイ

Re:ストップウォッチ作成

#7

投稿記事 by ナナイ » 18年前

to 管理人さま、バグさま、Hermitさま 、tkmakwins15さま

回答ありがとうございます。
皆様の返答をもとに作成してみます。

Jack

Re:ストップウォッチ作成

#8

投稿記事 by Jack » 17年前

ストップウォッチなのですが最初のキーの入力とストップウォッチの終了の命令がほしいのですがよろしければ教えていただけないでしょうか。

閉鎖

“C言語何でも質問掲示板” へ戻る