• ベストアンサー

C言語 一定時間計る

FoolWordの回答

  • ベストアンサー
  • FoolWord
  • ベストアンサー率73% (14/19)
回答No.1

キー入力は、getkb(), getch()を使い、時間計測は、GetTickCount()を使い、これらを組み合わせれば要件を満たしたプログラムが作成出来ると思います。 簡単なサンプルですが参考程度に載せておきます。 #include <stdio.h> #include <stdlib.h> #include <windows.h> #define Q_MAX 10 #define TIMER_MAX 10 void main(void) { int i = 1; int key = 0; long tm; int LoopFlg = 0; printf("第%d問\n",i); tm = GetTickCount(); // カウント開始 while(LoopFlg == 0) { if (kbhit() != 0) // キーが押されたかチェック { key = getch(); // 押されたキーを取得 switch(key) { default: // ESCキー以外が押されると次の問題へ i++; printf("第%d問\n",i); tm = GetTickCount(); // カウントをリセット break; case 0x1B: // ESCキーで終了 LoopFlg = 1; break; } } // 時間切れで次の問題へ(10秒) if((GetTickCount() - tm) >= (TIMER_MAX*1000)) { i++; printf("時間切れ\n第%d問\n",i); tm = GetTickCount(); // タイムアップでカウントをリセット } // 問題数を超えたら終了 if (i >= Q_MAX) LoopFlg = 1; } }

noname#153104
質問者

お礼

丁寧にサンプルソースまでありがとうございます。 時間の測定はGetTickCount()を使えばいいんですね! わかりやすかったです。

関連するQ&A

  • C言語で一定時間待機後、再実行

    タイトル通り、プログラムが一定時間経過してから再び起動し始めるソースの書き方が分かりません。 C言語出なければ、APIでもいいのですが、その記述方法もあいまいなので、その辺もご教授下さい。 イメージとしてはSleep()みたいなのを考えています。 よろしくお願いします。

  • C言語で一定時間実行し、時間が経過したら処理を終わらせるには?

    今C言語でOpenGLを用いて図形を表示させるプログラムを書いています。 一定時間(例えば5秒)だけ画像を表示させ、 時間が過ぎらたらその画像をけし、 何も描いてないウィンドウだけ表示させるようにさせたいのですが、 プログラミングは全くの初心者で、どうすればいいのかわからず 困っています。 どなたか教えていただけないでしょうか。 出来れば関数名だけでなく、サンプルプログラムなどで 教えていただければ幸いです。 すみません、宜しくお願いします。

  • 一定時間が経過したら処理を行う.

    一定時間が経過したら、ある処理を行いたいです。 if(一定時間が経過したら){  // 処理 } 例えばこのプログラムを実行してから1日たったら というようにしようと考えています. どのような条件をつければよいでしょうか?

  • C言語の制限時間

     現在、C言語で時間制限ありの16進数のクイズを作ろうとしています。 時間内に回答出来なかった場合に強制終了するプログラムを作りたいのですが、 どのように作れば良いでしょうか? ↓動作的にはこんな感じにしたいです 16進数で15は? [入力待ち・・・] (時間内に入力しなかった(応答がなかった)場合) 残念・・・答えはFです。 一応、time関数やfgetsなどいろいろ試してみたのですが、自分の力ではどうも上手く いかなかったので・・・・・・

  • 一定時間経過したExcelの強制終了方法を教えてください

    一定時間経過したExcelの強制終了方法を教えてください ExcelBookがAutoopenになっていて、マクロが起動します。 マクロが起動してから一定時間が経過したら、マクロでそのBookを強制終了したいのですが(保存等一切しなくてよいです)・・・ マクロは現行のまま処理(画面入力や検索する物です)を継続しつつ、 一定時間のカウントを行いたいのです。 時間経過後にマクロの処理中であっても強制終了させたいのです。 何方か、ご教授ねがいませんかm(_ _)m よろしくお願いいたします。

  • Borland C++ Compiler 5.5でのコンパイル可能ディレクトリの継承?

    Borland C++ Compiler 5.5.1をインストールしてサンプルソースをコンパイルしようとしたところ、「bcc32が認識されていない」エラーが出ました。 bccの設置場所はc:borland\bcc55\Binであり、Pathの設定も行い、bcc32.cfgとilink32.cfgもBinディレクトリ下に正しく作成済みです。 また、ソースの場所はc:sourceにsample1.cとして保存してあります。 なお、コマンドプロンプトでC直下での「C:\>bcc32」と入力すると正しく内容が表示され、 「C:\>bcc32 source\sample1.c」と入力すればC直下にコンパイルしたEXEファイルが生成されます。 しかし、「C:\source>bcc32」や、「C:\source>bcc32 sample1.c」では非認識エラーとなってしまいます。 windowsのOSはXP SP2のホームエディションです。 なぜ、C直下でしかbccが反映されていないのでしょうか? 対処法を教えてください、お願いします。

  • c言語について、質問します。

    c言語について、質問します。 環境設定を行いましたが、 コンパイルが何度、やってもできません。 c:?source>gcc -o sample sample.c と入力すると、 gcc:installation problem, cannot exec cc1':No such file or directory とでます。 成功したら、このような文字はでないとかいてあるのですが、どうすればよろしいですか?

  • C言語でいきなりつまづいてます。

    C言語でいきなりつまづいてます。 何がダメなのかご教授ください。 OSはウインドウズXPです。 (1)Borland C++ Compiler 5.5 With Command Line Tools Version 5.5.1をインストールしました。 (2)BCC5.5.1 環境ファイルパス設定プログラムをインストールしました。 (3)以下のソースを書きました。 #include <stdio.h> int main(void) { printf("Hello, \nworld"); return 0; } (4)hello.cというファイル名で保存しました。 (5)コマンドプロンプトでフォルダを(4)のファイルが置いてあるフォルダに指定し bcc32 hello.cと入力しました。 (6)出力が   hello.c になります。 エラーなどはありません。 以上です。 よろしくお願いします。

  • C言語 ダイアログボックス

    C言語で、ダイアログボックスを表示した後、そのメッセージの内容を読み上げるようなプログラムを作っています。 そのためには.wavファイルを作ってPlaySoundですればいいのではと思ったのですが、自動で再生させるためにWM_INITDIALOG内で再生処理をさせるとダイアログが影も形も見当たらない状態で音声が再生されます。そこで、Showwindow関数を呼び出せばダイアログが表示されるのかなと思ってやってみても、ウィンドウの枠は出るのですがスタティックテキストが出ません。 あくまで、ボタンをおしたら音声を流すのではなく、ダイアログが表示されてから自動で音声を流す方法はないのでしょうか、あれば回答よろしくお願いします。サンプルソースなどあればありがたいです。

  • c言語の再帰について教えてください。

    c言語を勉強してるんですが、再帰のイメージがなかなかつかめません。 例えば、入力した文字列を逆から一文字ずつ表示させるのには どうしたらいいのか教えてください! 入力:ABCDE E D C B A ソースで処理される順序など説明等していただけたらうれしいです。