• ベストアンサー

経過時間を表示させたい(C言語)

今以下のようなプログラムを作っています。問題の部分だけ載せておきます。  ・  ・  ・ a=0; b=0; time(&t1); for(○;△;□){ X番目の素数を表示させるアルゴリズム; time(&t2); b=t2-t1; if(a<b){ a=b; printf("%d秒経過...\n",a); }  ・  ・  ・ これですと経過時間は 1秒経過... 2秒経過... 3秒経過...  ・  ・  ・ と表示されるのですが、僕が目指しているのは、例えば、2秒経過したら「2秒経過...」という表示を「1秒経過...」を消してそのところに表示させたいのです。 つまり、まるで秒数の部分だけ変化しているように見せたいのです。 もし、やり方が分かる方がいましたら教えていただけると嬉しいです。ぜひともよろしくお願いします。

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

  • ベストアンサー
回答No.5

すいませんリンク先ちがってました。 http://www.kumei.ne.jp/c_lang/intro/no_59.htm

その他の回答 (4)

回答No.4

Windows環境であればコンソールAPI使うとか。。 http://www.kumei.ne.jp/c_lang/intro/no_58.htm

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

困ったッスね。 環境は、なんですか。 XPのDOSプロンプトではうまくいくんですけどねぇ~。 じゃ、次は、コレを試してみて下さい。 printf("\b\b\b\b\b\b\b\b\b\b\b\b\b"); printf("%d秒経過...",a);

noname#60636
noname#60636
回答No.2

以下のように、system()関数を使ってみるとか。 system("cls"); printf("%d秒経過...\n",a); 全部消えてしまうけど…

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

とりあえず printf("%d秒経過...\r",a); としてみて下さい。 これで、ダメなら、エスケープシーケンスを使うとか

Keita_since_1983
質問者

補足

ご回答ありがとうございます。 一応やってみましたがダメでした。 そこで「エスケープシーケンスを使ったみては」ということだったので、「printf("%d秒経過...",a);」の前に「printf("\x1b[2K");」に入れてみましたがダメでした。 ちなみに後にも置いてみましたがダメでした。 なにか良い方法がありましたら教えてもらってもいいでしょうか?

関連するQ&A