• ベストアンサー

printfの時間差利用

例えば printf("apple\n"); printf("orange\n"); と二つの文字列を表示するとします。 これなら簡単なのですが appleと表示した2秒後にorangeと表示する方法を知りたいのです。そんなことは可能ですか?知っている方がいらっしゃれば教えてくださいm(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • smat7
  • ベストアンサー率46% (7/15)
回答No.8

あまりほめられた実装ではありませんが時刻取得関数を使って時間が経過するまで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"); } というようなつくりです

gengen4
質問者

お礼

回答ありがとうございます。 質問ではappleとorangeだけなのですが、今作ろうとしているプログラミングは 居酒屋のメニューを端末でうつ練習をするプログラムです。 「60種類のメニューのうち1つ」と「その個数」 を2秒ごとにランダムにどんどん表示していくプログラムを作ろうとしています。  ランダムに表示するのはrand()とifを使ってできたのですが、2秒ごとに表示させることができません。  回答のようにdo whileを使うと混乱してきそうです(笑)回答ありがとうございました。

その他の回答 (8)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.9

#include <stdio.h> #include <windows.h> int main(){ printf("apple\n"); Sleep(2000); printf("orange\n"); return 0; } *bcc32、vc++7.1ならこれで動きました。

gengen4
質問者

お礼

 まねしてやってみたらwindows.hが開けませんでした。sleep関数を開くためのファイルが環境にないみたいです。他に良い手があったら教えてください。 回答本当にありがとうございました。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.7

更に横槍すみません。 sleepはCの標準関数ではありません。 処理系依存です。 質問では環境を書いた方がいいですよ。

gengen4
質問者

補足

的確なアドバイスありがとうございます。そのように親切に注意してくれる方がいらっしゃることを幸せに思います。  環境はwindows XPです  

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.6

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

gengen4
質問者

お礼

参考URLまでつけたわかりやすい説明大変感謝します(^o^)sleepやってみますね

  • php504
  • ベストアンサー率42% (926/2160)
回答No.5

>sleep() の引数は、2000 かと・・・。 Cの標準関数では引数は秒数です。 PerlもPHPも秒数です。

gengen4
質問者

お礼

回答ありがとうございます(^o^) Cの標準関数では秒数なのですね。 補足感謝します><

  • sktoshi
  • ベストアンサー率50% (2/4)
回答No.4

横ヤリすみません。 sleep() の引数は、2000 かと・・・。

gengen4
質問者

お礼

横やりありがとうございます(笑) sleep関数はミリ秒で表示するんですか?2000でやってみます。回答感謝です><

  • Tsan
  • ベストアンサー率20% (184/909)
回答No.3

システムコールのsleepを使用してはいかがでしょうか。 printf("apple\n"); sleep(2); printf("orange\n"); でappleの2秒後にorangeが出るはず。

gengen4
質問者

お礼

お礼遅くなりました。すばやい回答ありがとうございます。sleep関数使ってみましたけど、だめでした>< appleまでは表示できるんですが…(-o-; でも回答してくださったことに感謝です!!

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

printf("apple\n"); sleep(2); printf("orange\n"); でどうでしょう。

gengen4
質問者

お礼

お礼遅くなりました。すばやい回答ありがとうございます。sleep関数使ってみましたけど、だめでした>< appleまでは表示できるんですが…(-o-; でも回答してくださったことに感謝です!!

  • chirubou
  • ベストアンサー率37% (189/502)
回答No.1

環境が分からないのですが、 printf("apple?n"); sleep(2); printf("orange?n"); ではダメかしら?

gengen4
質問者

お礼

お礼遅くなりました。すばやい回答ありがとうございます。sleep関数使ってみましたけど、だめでした>< appleまでは表示できるんですが…(-o-; でも回答してくださったことに感謝です!!

関連するQ&A