2012-01-11 2 views
0

私はObjective-CでOOPの練習用に小さなcmd電卓を実装していました。私は012,経由で2倍入力を取得していましたが、入力を取得するために%fを書式設定に使用し、それをdouble変数に入れました。なんらかの理由で、それは常に入力奇数を読み取るでしょう。私は何が起こっていたのか分かりませんが、すべての型をintに変更したとき、それは完璧に機能しました。scanfで入力したときに奇妙な動作をします

+1

失敗した場所や期待したとおりにやっていない場所など、いくつかの例を挙げ、コードを投稿してください。 – 0x8badf00d

+0

いくつかの偶数で試しましたか? –

答えて

5

ダブルの場合はscanf()の形式が"%lf"です。可変引数関数への引数はfloatdoubleに昇格されているので

printf()は、floatdoubleの両方に同じ"%f"フォーマットを使用することができます。 scanf()のプロモーションはありません。ポインタを渡しているため、実際にfloatまたはdoubleオブジェクトをメモリに保存する必要があります。

+0

ありがとうございます! –

関連する問題