仕事と晩飯とその他

日記です。

動いた! けど化ける → 原因がわかったので解決

名前と年齢と性別を持つ構造体を作る。
3つの構造体にそれぞれの項目を入力する。
3つの構造体の項目を画面に出力する。

動いた。素晴らしい。

やっぱりprintfの次の行にfflush(stdout)を書いておくのは必要みたい。

でも、名前のところが化ける。というか、これ、そもそもちゃんと入力されてないっぽい。いや、scanfじゃなくて代入のところなんだろうか。

答えを見る前にもう少し考える。

構造体に格納したデータを表示する際に出力変換指定子を「%s」(文字列)としなければいけないところを、「%c」(文字)としていた。

直してコンパイル。実行(まだ忘れそう)。

3人分のデータを順番に入力。
3人目の入力を終えたところで入力したデータを表示。

今度はうまくいった。

あまり達成感は無いが、基本的なところで引っかかったおかげでいい勉強になった。

PHPと比較すると、変数の型や宣言のところはこんなもんかという感じなのでそれほどでもないが、出力変換指定子とポインターは概念そのものが無いから忘れそう。というより、このあたりを適当に済ませられるPHPはやっぱり簡単なんだな。あと、PHPでもたまにはまる変数のスコープ、これはオレがずぼらなだけだなと反省。それでも変数まわりはなんとなく手間だけだなという気がする。

それより個人的には関数だな。PHPもどんどん関数化したほうがいいな。もしかするとその過程でもう少し整理できるかも。

それにしても、SQLはまったく別世界なんだな。あと、XML(HTML)のDOMも。それと、CSSに至っては別世界というか異次元。今のところ怖くて触れないけど、ネットワークプロトコルとかっていうのも奥が深そうだ。

わからないことが減るってことはなさそうだ。