タグ

ブックマーク / konuma.txt-nifty.com (2)

  • 二流プログラマの三流な日常: stringstreamの衝撃

    iostream系は引数が覚えにくいという理由で使ってません。 しかし、気まぐれで使ったstringstreamでちょっとした衝撃を受けました。簡易再現コードは以下の通り。 int i; double d; stringstream sstr; sstr << "10.25" sstr << "10.50"; sstr >> i; sstr >> d; 個人的に期待した動作はi=10、d=10.5でしたが・・・ d=0.25になりました。 つまり、最初の文字列の10.25のうち、”10”だけがクリアされて、次の”.25”がdに入ってしまったのです。元のコードはもっと複雑だったため、10分くらい考え込んでしまいました。 この動作はVC++7.1と8.0で確認しています。現在手元に無いため、C++仕様書は確認していませんが、結果をみた後からなら納得できた仕様なので、たぶん仕様でしょう。 しかし

    yasuf
    yasuf 2009/02/26
  • 二流プログラマの三流な日常: C++

    iostream系は引数が覚えにくいという理由で使ってません。 しかし、気まぐれで使ったstringstreamでちょっとした衝撃を受けました。簡易再現コードは以下の通り。 int i; double d; stringstream sstr; sstr << "10.25" sstr << "10.50"; sstr >> i; sstr >> d; 個人的に期待した動作はi=10、d=10.5でしたが・・・

    yasuf
    yasuf 2007/05/23
    気になった
  • 1