- ベストアンサー
printfの時間差利用
例えば printf("apple\n"); printf("orange\n"); と二つの文字列を表示するとします。 これなら簡単なのですが appleと表示した2秒後にorangeと表示する方法を知りたいのです。そんなことは可能ですか?知っている方がいらっしゃれば教えてくださいm(__)m
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
あまりほめられた実装ではありませんが時刻取得関数を使って時間が経過するまでbusyloopで待つという手法がお手軽ではあります #include <time.h> { time_t start,now; printf("apple\n"); time(&start); do{ time(&now); }while(difftime(now,start)<2.0); printf("orange\n"); } というようなつくりです
その他の回答 (8)
- sha-girl
- ベストアンサー率52% (430/816)
#include <stdio.h> #include <windows.h> int main(){ printf("apple\n"); Sleep(2000); printf("orange\n"); return 0; } *bcc32、vc++7.1ならこれで動きました。
お礼
まねしてやってみたらwindows.hが開けませんでした。sleep関数を開くためのファイルが環境にないみたいです。他に良い手があったら教えてください。 回答本当にありがとうございました。
- sha-girl
- ベストアンサー率52% (430/816)
更に横槍すみません。 sleepはCの標準関数ではありません。 処理系依存です。 質問では環境を書いた方がいいですよ。
補足
的確なアドバイスありがとうございます。そのように親切に注意してくれる方がいらっしゃることを幸せに思います。 環境はwindows XPです
- Trick--o--
- ベストアンサー率20% (413/2034)
sleep(秒); のようですね http://x68000.q-e-d.net/~68user/unix/func.html#sleep マイクロソフトさんはミリ秒がお好みのようです VOID Sleep( DWORD dwMilliseconds // 中断の時間 ); http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdllpro/html/_win32_sleep.asp
お礼
参考URLまでつけたわかりやすい説明大変感謝します(^o^)sleepやってみますね
- php504
- ベストアンサー率42% (926/2160)
>sleep() の引数は、2000 かと・・・。 Cの標準関数では引数は秒数です。 PerlもPHPも秒数です。
お礼
回答ありがとうございます(^o^) Cの標準関数では秒数なのですね。 補足感謝します><
- sktoshi
- ベストアンサー率50% (2/4)
横ヤリすみません。 sleep() の引数は、2000 かと・・・。
お礼
横やりありがとうございます(笑) sleep関数はミリ秒で表示するんですか?2000でやってみます。回答感謝です><
- Tsan
- ベストアンサー率20% (184/909)
システムコールのsleepを使用してはいかがでしょうか。 printf("apple\n"); sleep(2); printf("orange\n"); でappleの2秒後にorangeが出るはず。
お礼
お礼遅くなりました。すばやい回答ありがとうございます。sleep関数使ってみましたけど、だめでした>< appleまでは表示できるんですが…(-o-; でも回答してくださったことに感謝です!!
- php504
- ベストアンサー率42% (926/2160)
printf("apple\n"); sleep(2); printf("orange\n"); でどうでしょう。
お礼
お礼遅くなりました。すばやい回答ありがとうございます。sleep関数使ってみましたけど、だめでした>< appleまでは表示できるんですが…(-o-; でも回答してくださったことに感謝です!!
- chirubou
- ベストアンサー率37% (189/502)
環境が分からないのですが、 printf("apple?n"); sleep(2); printf("orange?n"); ではダメかしら?
お礼
お礼遅くなりました。すばやい回答ありがとうございます。sleep関数使ってみましたけど、だめでした>< appleまでは表示できるんですが…(-o-; でも回答してくださったことに感謝です!!
お礼
回答ありがとうございます。 質問ではappleとorangeだけなのですが、今作ろうとしているプログラミングは 居酒屋のメニューを端末でうつ練習をするプログラムです。 「60種類のメニューのうち1つ」と「その個数」 を2秒ごとにランダムにどんどん表示していくプログラムを作ろうとしています。 ランダムに表示するのはrand()とifを使ってできたのですが、2秒ごとに表示させることができません。 回答のようにdo whileを使うと混乱してきそうです(笑)回答ありがとうございました。