こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

C言語の出力方法

#include <stdio.h>
#include <time.h>
#include <Windows.h>

int main(void)
{
time_t timer;
struct tm *t_st;
while(1){
time(&timer);
printf("現在時刻: %s\n", ctime(&timer));
sleep(1);
}
return 0;
}

と言うプログラムで、コマンドプロンプトに現在時刻を表示させています。
実行すると
C:\>zikoku
現在時刻: Tue Oct 27 23:08:19 2009

現在時刻: Tue Oct 27 23:08:20 2009

現在時刻: Tue Oct 27 23:08:21 2009

現在時刻: Tue Oct 27 23:08:22 2009

現在時刻: Tue Oct 27 23:08:23 2009

現在時刻: Tue Oct 27 23:08:24 2009
という感じでどんどん下に表示されていきますが、

C:\>zikoku
現在時刻: Tue Oct 27 23:08:19 2009
と1行だけ表示させ、この1行を毎回書き換える という事は出来ないのでしょうか?
C:\>zikoku
現在時刻: Tue Oct 27 23:08:19 2009
の1秒後
C:\>zikoku
現在時刻: Tue Oct 27 23:08:20 2009
と言う風に、下に表示ではなく、元々表示されている場所に再度と言うことです。

投稿日時 - 2009-10-27 23:11:53

QNo.5402131

暇なときに回答ください

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>%.24sの意味が分からないのですが、教えて頂けませんか?

フォーマットにはたくさんあるのでマニュアルを一通り見ておきましょう
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/printf.3.html
http://wisdom.sakura.ne.jp/programming/c/c57.html
ピリオドは精度になります
文字列の場合は出力最大文字数ですね

>Ctrl+Cで強制終了させるのではなく、きれいに終了させる方法はありませんか?

Windowsでしたら
#include <conio.h>
で _kbhit( ) 関数が使えます。

投稿日時 - 2009-10-28 05:54:54

ANo.1

↓でどうでしょう?

printf("現在時刻: %.24s\r", ctime(&timer));

投稿日時 - 2009-10-27 23:20:11

補足

ありがとうございました。
%.24sの意味が分からないのですが、教えて頂けませんか?


#include <stdio.h>
#include <time.h>
#include <Windows.h>

int main(void)
{
time_t timer;
struct tm *t_st;
while(1){
time(&timer);
printf("現在時刻: %.24s\r", ctime(&timer));
Sleep(1000);
}
}
この様なコードになったのですが、Ctrl+Cで強制終了させるのではなく、きれいに終了させる方法はありませんか?
getch()を使おうとしたのですが、何かのキーを押さないと時計の更新をしなくなってしまったので・・・・・

投稿日時 - 2009-10-28 00:27:43

あなたにオススメの質問