アプリ版:「スタンプのみでお礼する」機能のリリースについて

#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
と言う風に、下に表示ではなく、元々表示されている場所に再度と言うことです。

A 回答 (2件)

↓でどうでしょう?



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

この回答への補足

ありがとうございました。
%.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
    • good
    • 0

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



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

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

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!