フラクショナルクラスのためにオーバーロードを処理していますが、処理する必要がある入力の種類がいくつかあります。例:1/2(標準小数点)、2 + 3/4(混合数)、2(整数)。教授は、整数の後ろにある2番目の文字が何であるかを知るためにpeek()関数を使う必要があると言っています。つまり、temp
をintとして宣言する必要があるということですか?私の質問は、tempが整数の場合、残りの部分をどのように得るか(整数ではない場合)ですか?peek()を使用して入力ストリームをオーバーロードする
私の経験に基づいて、tempを文字列として宣言し、ピークを使用しません。しかし、intとpeekのアプローチは、教授が提案して以来、あるメリットがあるはずです。ここで
in >> temp;
if (in.peek() == '+'){
doSomething...
} else if (in.peek() == '/'){
doSomethingElse...
} else {
doThirdOption
}
いいえ、入力ストリームから次の数字、つまり+または/?の後の数字をどのように読み取るのか不思議です。私が既にtempを+または/の前の最初のintであるintとして宣言しているので、私には分かりません。 –
それで、あなたができることは、各反復の終わりに値を追加できる合計変数を持つことです。同じ一時変数を使用してシンボルの後に入力を取得します。 –