トップページ > プログラム > 2015年09月13日 > 9Xvo2tPa

書き込み順位&時間帯一覧

27 位/165 ID中時間01234567891011121314151617181920212223Total
書き込み数1000000000000000000010002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
スレを勃てるまでもないC/C++の質問はここで 23 [転載禁止]©2ch.net

書き込みレス一覧

スレを勃てるまでもないC/C++の質問はここで 23 [転載禁止]©2ch.net
676 :デフォルトの名無しさん[sage]:2015/09/13(日) 00:01:49.26 ID:9Xvo2tPa
昔、ある本で、scanfを使うな。getsを使えと書いてあったね。
getsで入力を受け取ってそれをatofとかatoiで変換するほうが、安全だと書いてあった。
たしかにそうだと思ったという記憶がある。
いまでは、C++のcinとかcoutを使っている。
スレを勃てるまでもない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()を使うのがよりよいかもしれません。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。