- スレを勃てるまでもないC/C++の質問はここで 23 [転載禁止]©2ch.net
688 :デフォルトの名無しさん[sage]:2015/09/13(日) 20:42:36.34 ID:9Xvo2tPa - >>686
探してみたらかなり古い本(1989年発行)でした。 小川優介・西田雅昭著『プログラミングお作法』(技術評論社) です。 この中に 「函数scanf()は、キャリッジリターン・コードの取扱方が言語仕様として定義されていないため、 処理系によっては副作用が発生します。そのため、処理系によっては予期せぬ振舞いをする場合があります。 このような副作用を考慮する必要のない標準文字列入力函数にgets()があります。函数gets()は標準入力 すなわちキーボードから1行(キャリッジリターンまで)を文字列として読み込み、このとき改行コードをヌル コードに置き換えます。」 と書いてありました。 いまでは、Cも標準化が進んでいるようで、処理系による違いとかは無いかもしれませんが、 scanf()の書式仕様を指定する場合に間違えやすいこともあって、この本を読んでいら、gets()を 使っています。 しかしどなたがが指摘されていたように、fgets()を使うのがよりよいかもしれません。
|