さて、最近プログラミングの授業が始まりました。
ほとんどCのプログラミングで最後にHTMLを書くらしい。
HTMLか…しかしどうもHTML 3.2っぽい感じがするんだよなぁ。まぁこれはどうでもいいことですが。
で、Cのプログラムを書いているわけですが、
コンパイラはCygwin上のgccだったな。
僕も初めそれでやってたなぁ。今はBorland C++ Compilerですが。
それとメモ帳という非常に変な組み合わせといえばそうだな。
ただメモ帳ではどうも見にくいので、Terapadを使うことに。
まず、Terapadをダウンロード。展開。
Z:\terapadに展開する。(Zはネットワークドライブ)
それで.bashrcを編集、
PS1="[\u@\h \W]\\$"
PATH= $PATH:/cygdrive/z/terapad
とすればいいはず。まぁこんな風に編集してと。
ただこれではどうもうまく読み込まん。今まで/etc/profileを直接いじってたからよく知らんかったので調べた。
.bash_loginを作成して
test -f ~/.bashrc && . ~/.bashrc
と書けばいいらしい。
これでbashを立ち上げるだけで、PS1の変数は自分好みになってるし、PATHも追加されてる。
ここで
$ terapad test.c &
$ gcc -o test test.c
とすればいいと。便利ですね。
さて、そんな感じでサクサクと作成してはコンパイル、確認とできますね。
やはりTerapadはそれなりのテキストエディタに仕上がってるわ。メモ帳はシンプルすぎる。
そういえばCの標準ライブラリ関数、いろいろありますけど、
gets、scanf、fscanfあたりは適当に使うと危険なことが多いな。
getsは当然だ。配列の大きさを制限しないんだから。
代わりにfgetsを使えば、ちゃんと配列の大きさを指定できるので解決できる。
fgets(str,10,stdin);
scanf・fscanfは行単位で読み取る能力に欠けていたり、ゾンビがバッファに残ったりするのでよろしくない。
まぁ解決法はあるらしいけど、fgetsで1行ごとに読み取って、sscanfで分解していくのがおすすめ。
しかしここのところscanfは使わないなぁ…
引数とファイルの読み込みでいろいろ指定するからかな。
scanfはお手軽だけど、ちょっと注意しないとな。