- 締切済み
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 と言う風に、下に表示ではなく、元々表示されている場所に再度と言うことです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- php504
- ベストアンサー率42% (926/2160)
>%.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( ) 関数が使えます。
- jacta
- ベストアンサー率26% (845/3158)
↓でどうでしょう? 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()を使おうとしたのですが、何かのキーを押さないと時計の更新をしなくなってしまったので・・・・・