#はじめに
この記事は、SLP KBIT Advent Calendar 2020 の18日目の記事です。
あと1週間するとクリスマスですね。
今回は、C言語でタイマーとストップウォッチを作っていきます。
#作成する
###環境
- Windows10
- Visual Studio Code
###タイマーの作成
【 C言語:指定した秒数経過後にメッセージを表示する 】を参考にしました。
double start, end;
double total = 0.0, set = 0.0;
char message[] = "時間です!";
printf("タイマーを何秒後にセットしますか? ");
scanf("%lf", &set);
start = clock() / CLOCKS_PER_SEC;
while(1){
if(total > set){
break;
}
end = clock() / CLOCKS_PER_SEC;
total = end - start;
}
printf("%s\n", message);
これを実行すると以下のようになります。
(約)3秒後に「時間です!」と表示されました。
次はストップウォッチを作成していきます。
###ストップウォッチの作成
【 C言語で簡単なストップウォッチのサンプルプログラム 】を参考にしました。
double start, end;
double total = 0.0, set = 0.0;
char message[] = "時間だよ!";
printf("タイマーを何秒後にセットしますか? ");
scanf("%lf", &set);
start = clock() / CLOCKS_PER_SEC;
while(1){
if(total > set){
break;
}
end = clock() / CLOCKS_PER_SEC;
total = end - start;
}
printf("%s\n", message);
これを実行すると以下のようになります。
Enterキーを押すと経過時間が表示されました。
#完成したソースコード
タイマーとストップウォッチを一つにまとめました。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
double start, end;
double total = 0.0, set = 0.0;
int a, b;
char message[] = "時間です!";
puts("タイマーを使いますか?ストップウォッチを使いますか?");
puts("タイマー:1 , ストップウォッチ:2");
do{
printf("1か2を入力してください:");
scanf("%d", &a);
}while(a < 0 || a > 2);
if(a == 1){
/* タイマー */
printf("\nタイマーを何秒後にセットしますか? ");
scanf("%lf", &set);
start = clock() / CLOCKS_PER_SEC;
while(1){
if(total > set){
break;
}
end = clock() / CLOCKS_PER_SEC;
total = end - start;
}
printf("\n\n%s\n", message);
}else{
/* ストップウォッチ */
clock_t start, end;
puts("\nストップウォッチを開始します。");
printf("止めるときはEnterキーを押してください。");
b = getchar();
putchar(b);
start = clock();
b = getchar();
putchar(b);
end = clock();
printf("%.3f秒です。\n", (double)(end - start) / CLOCKS_PER_SEC);
}
}
#おわりに
C言語でタイマーとストップウォッチを作りました。
タイマーを作る際に音楽が流れるようにしたかったのですが、やり方が分からず断念しました。
次はパソコン内の音楽を流す方法を考えていきます。
また、記事を書くことが初めてで読みづらい文章になってしまいました。
今後はおおくの記事を読んで研究して、読みやすいものを書きます。
#参考にしたもの
-
人生は読めないブログ
C言語:指定した秒数経過後にメッセージを表示する -
PcTravelJouonal
C言語で簡単なストップウォッチのサンプルプログラム