[1018] Re:体当たり学習について質問
投稿者:(ぱ)こと管理人
2007/08/16 22:04:45
ちょいちさん、はじめまして。
>fgets(buf, 1024, stdin)
>と書いていたのを、なぜ急に
>fget(buf, 1024, fp)
>と変えたのですか??
もちろんこれはトルさんから回答があったように入力元を変えるためなのですが、
「なぜこのプログラムから?」というのが疑問であるわけですよね。
確かに説明不足だったかもしれません。
理由は、ここで作っている関数input_string()は、汎用の関数を目指している
ためです。
このinput_string()は、扱える行の最大長に制限があるとはいえおおむね現実的な
入力においては、長さチェックを行って長すぎる場合にはエラーまで出してくれる、
という便利な関数です。実際、蔵書管理プログラムの中でもあちこちで使われて
いますし、今後別のプログラムで使うこともあるかもしれません。
今後別のプログラムで使うことがあるのなら、入力元をstdinに限定して
しまったのでは汎用性が薄れます。そこで、input_string()に引数として
入力元を渡せるようにしているわけです。
これで回答になっていますでしょうか?