dポイントプレゼントキャンペーン実施中!

"数秒おきに警報をn回鳴らすプログラム"をC言語で作成しようと
考えています。

プログラム実行環境はWindowsですが、
sleep()関数は使用できないのでしょうか??

仮に使用できない場合、この関数に代わる関数や代替方法が
あれば教えて頂けませんでしょうか? 宜しくお願いします。

A 回答 (3件)

正確な動作でも構わなければ


windows.hをインクルードして
Sleep()関数を使いましょう.
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng. …

しかし,正確に数秒おきに動作を行いたい場合はマルチメディアタイマ等を使いましょう.
マルチメディアタイマはミリ秒間隔でコールバック関数を呼び出すことができます.
timeSetEventを用いてコールバック関数の登録を行うことができます.
timeKillEventでコールバック関数の解除を行うことができます.

多分他にも方法があると思うのですが…私はこれぐらいしか知りません^^;

参考URL:http://www.katto.comm.waseda.ac.jp/~katto/Class/ …
    • good
    • 3
この回答へのお礼

Sleep()関数の存在を知りませんでした。
ありがとうございました。

お礼日時:2008/09/06 21:01

sleepがなければ、時間関数ではどうでしょう。

timeとかclockとか。
Windows環境なら、No.1さんが書かれているSleepの方が使いやすいかもしれませんが。。
こんな感じ?
#include <stdio.h>
#include <windows.h>
int main(void) {
int i;
for (i=0; i<10; i++) {
Sleep(1000); /* 1秒待ち */
printf("alart!\n");
}
return 0;
}
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2008/09/06 21:02

まともなコンパイル環境ならWindowsにおいても使用可能です。



# もし「Windows固有」の機能をあえて使うならば、
# 代わる方法としてSleep()というものがありますが
# 秒単位での制御であればあえて不要でしょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2008/09/06 21:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!