C言語で羽根を回す
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[C]]
うちは開発系じゃないからCもお遊びにしか使わないの。
そんなわけで、うちのお約束、羽根を回してみます。時計に組み込んでみるね。
- (参考)[[Rubyのコンソールで羽根をクルクル回す>コンソールで羽根をクルクル回す]]
- (参考)[[Pythonで羽根をクルクル回す]]
* コード [#v72f98ad]
#include <stdio.h>
#include <time.h>
void main(){
time_t t;
time_t t2;
struct tm tm;
int hn=0;
char str[] = "-/|\\";
while(1){
t2 = time(NULL);
if(t != t2){
t = t2;
hn++;if(hn>3)hn=0;
localtime_r(&t, &tm);
printf("\r%c %02d:%02d:%02d",str[hn],tm.tm_hour, tm.tm_min, tm.tm_sec);
fflush(stdout);
}
}
}
* Makefile [#me5530fd]
やっぱりコンパイラ言語なら、Makefileは書くわよね。
OBJ=test
all:
gcc -o $(OBJ) $(OBJ).c
strip $(OBJ)
clean:
rm $(OBJ)
* 実行結果 [#t3d72591]
/ 04:32:01
* コード解説 [#na99d8a6]
** どうやって羽根を回すか? [#wa606a64]
C言語は本来、うちで扱う言語じゃないわ。うちは文字列の扱いが不便な言語はおよびじゃないから。~
とはいえ、コンソールで羽根を回すくらいなら十分。その方法を解説するわ。
まず、文字列を定義する。配列でなく文字列よ。
char str[] = "-/|\\";
ご存じのようにC言語における文字列は、配列のように一文字ずつたどれる。ただし出力されるのは文字でなく文字コードよ。~
だから printfで表示するときは %s でなく %c で表すわ。%cはわかるわよね?そう
** 時刻表示 [#c49782c2]
いくつか方法を試したけど、time.h についてくる構造体 tm がもっとも簡単だったから利用することにしたわ。
* 総評 [#y72ef156]
思ったより、はるかに少ないコードでさっくり書けたわね。びっくり
終了行:
[[C]]
うちは開発系じゃないからCもお遊びにしか使わないの。
そんなわけで、うちのお約束、羽根を回してみます。時計に組み込んでみるね。
- (参考)[[Rubyのコンソールで羽根をクルクル回す>コンソールで羽根をクルクル回す]]
- (参考)[[Pythonで羽根をクルクル回す]]
* コード [#v72f98ad]
#include <stdio.h>
#include <time.h>
void main(){
time_t t;
time_t t2;
struct tm tm;
int hn=0;
char str[] = "-/|\\";
while(1){
t2 = time(NULL);
if(t != t2){
t = t2;
hn++;if(hn>3)hn=0;
localtime_r(&t, &tm);
printf("\r%c %02d:%02d:%02d",str[hn],tm.tm_hour, tm.tm_min, tm.tm_sec);
fflush(stdout);
}
}
}
* Makefile [#me5530fd]
やっぱりコンパイラ言語なら、Makefileは書くわよね。
OBJ=test
all:
gcc -o $(OBJ) $(OBJ).c
strip $(OBJ)
clean:
rm $(OBJ)
* 実行結果 [#t3d72591]
/ 04:32:01
* コード解説 [#na99d8a6]
** どうやって羽根を回すか? [#wa606a64]
C言語は本来、うちで扱う言語じゃないわ。うちは文字列の扱いが不便な言語はおよびじゃないから。~
とはいえ、コンソールで羽根を回すくらいなら十分。その方法を解説するわ。
まず、文字列を定義する。配列でなく文字列よ。
char str[] = "-/|\\";
ご存じのようにC言語における文字列は、配列のように一文字ずつたどれる。ただし出力されるのは文字でなく文字コードよ。~
だから printfで表示するときは %s でなく %c で表すわ。%cはわかるわよね?そう
** 時刻表示 [#c49782c2]
いくつか方法を試したけど、time.h についてくる構造体 tm がもっとも簡単だったから利用することにしたわ。
* 総評 [#y72ef156]
思ったより、はるかに少ないコードでさっくり書けたわね。びっくり
ページ名: