イドのなんらか

TRPGしたりキャンプしたりするITエンジニアの人間が書く雑記

闇に飲まれる男

今日も楽しくお仕事してきた。

いや業務3割勉強7割くらいだったので、楽しくお勉強してきたというのが正しいのかもしれない。

いやいや業務のためのお勉強なのだから、やはり楽しくお仕事できているはずである。

 

さて、今日はC言語の闇に飲まれるなどしてきた。

具体的には、標準入力の部分でつまずいた。

 

getsが危険な関数になってからというもの、Cでの行単位の標準入力は大変なことになってしまった。

scanfをいい感じにこねくり回して行の入力を実装しなければならなくなったからである。

 

困ったことに、scanfはデフォルトでホワイトスペースやタブを区切り文字として判定しやがる。

まじで許せないが、現実としてCはキャリッジリターン以外にも区切り文字を波及させてくるし、しかも引数で区切り文字を定義することも許されない。

 

フォーマットレベルで、なんとかしてホワイトスペースを読み込まなければならない。

が、それが僕にはできなかったのでこうしてインターネットの辺境で愚痴っているわけである。

いや結構試行錯誤したんだけどもう読み飛ばしだったり入力ストリームに読み残しが残ったりでもうわけがわからん。

 

うん。

とりあえず行単位の標準入力はgetcharを使うことにする。

こいつならまぁまぁなんとか実装できるでしょう。

 

レガシィのお勉強はとにかく情報が古いのがキツい。

gets使えとかそういう記事ばかりがヒットするし、気が狂いそうになる。

 

が、DOSバッチと和解した僕ならば、必ずやCとも和解できるはずである。

しかもDOSは業務であったが、こっちはお勉強なので気は楽だ。

 

将来Cを書いてお仕事することはないと思うが、こうした原始的な部分の知識はあらゆるものに応用が効く。

 

明日はもう少し業務の割合が増えるが、エンジニアとして腐らないように自己メンテナンスを重ねていく所存である。