- ベストアンサー
時間内処理のCプログラム
今、LSIC86試食版でプログラムの練習をしています。 時間内処理についてですが、例えば、5秒間HELLOという文字を出力して、5秒後ENDを表示する といったプログラムの作り方をご存知の方いらっしゃらないでしょうか? 5回表示すると言うプログラムでしたらできますが、時間内処理の組み方がわからなくて困っています。 LSIC86番のコンパイラで実行したいので、教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
下記の宣言は何のために書きましたか。 time_t timer; while文の条件にはなっていますが、初期化も何も行なっていませんよね。 これでは、while文が正常には動かないですよね。 変数の使い方とか、そういったc言語の基本的な部分は理解されてますか? この場合、初期化されていないのでtimer変数は不定値となります。 c言語の条件式は、0以外は真とみなしますから、確率的にはwhileのループに入り永久ループ入りです。 元々の質問文を見る限り、時間内処理の組み方がわかってないとあるのですが、それ以前にc言語のことを理解されてないように思われますが如何ですか。 書いていただいた「プログラム内容」は、解らないところを省略して書いただけで、言語自体は理解しているのってことでしたら御免なさい。 それと、timer_tの宣言まで書かれているのであれば、あとは必要な関数を検索するのは非常に容易いと思います。 timer_tを検索しただけで、色々なサンプルプログラムが出てきます。 それらを参考にして、設計をすれば、適切なのはwhie文なのかif else文なのかfor文なのかは決まってくると思います。 あまり親切とはいえない回答でしたが、これくらいの助言でなんとかなると信じてます。
補足
早速の回答ありがとうございます。 はい、これから、勉強していきたいと思ってます。 プログラム内容は、 #include <stdio.h> #include <time.h> int main(void) { time_t timer; while(timer<5) { printf("hello\n"); } return(0); } という内容で、5秒間helloという文字を表示させたいと考えております。 timerの関数は、時間をカウントしてくれるものだと思っていたのですが、 無限ループになり、5秒間表示にはなりませんでした。 whileで条件の間ループさせる方法がいいのか、if_elseなのか、for分がベストなのか よくわかりません。 よろしけば、最適な方法を教えていただければ助かります。 最終的には、CPUのLEDをつけたり消したり、点滅させたいのですが、まずは初歩的な所 から進んでいきたいです。