私は別の解決策を見つけることにもっと興味があるので、タイトルは間違いです。私の直感は、バッファが空であるかどうかをチェックすることが(少なくとも私の場合は)最も理想的な解決策ではないということです。C++ std :: cinバッファが空であるかどうかをチェックする方法
私はC++を新しくしており、Bjarne StroustrupのC++を使用したプログラミングの原則と実践に従っています。私は現在第7章にあり、第6章から電卓を「改良」しています。質問の最後にソースコードのリンクを入れます。
基本的に、電卓は複数セミコロンで区切られたユーザーからの入力
> 5+2; 10*2; 5-1;
= 7
> = 20
> = 4
>
しかし、私は、最後の2つの答えのプロンプト文字(「>」)を取り除くために好きで、ユーザーの入力がを求められた場合にのみ、再びそれを表示したいです。私の最初の本能は、バッファが空であるかどうかを調べる方法を見つけ出すことでした。もしそうなら、文字を取り、そうでなければ、答えを返すようにしてください。しかし、少しのグーグル・グーグルでは、当初考えていたほど簡単ではないことがわかった。そして、それはあまり良いことではないかもしれない。
私は本質的に私の質問は、複数の入力がある場合、最後の2つの答えの '>'文字を取り除く方法です。しかし、cinバッファーを確認することが可能であり、が可能であり、ではない結局のところ、私はそれを行う方法を知りたいです。
ソースコード:https://gist.github.com/Spicy-Pumpkin/4187856492ccca1a24eaa741d7417675
ヘッダファイル:http://www.stroustrup.com/Programming/PPP2code/std_lib_facilities.h
^あなたはこのヘッダファイルが必要です。私はそれが作者自身によって書かれたと仮定します。
編集:私はいくつかの解決方法についてウェブを見てきましたが、正直言って私には意味がありませんでした。私はC++を拾ってから4日ほど経ちましたが、プログラミングの背景が非常に薄いため、時にはグーグルでもちょっと難しいです。
スティックで突き刺して、うずきがあるかどうかを確認します。 –
類似の質問:http://stackoverflow.com/questions/3317740/checking-data-availability-before-calling-stdgetline –
この場合、 'std :: getline'を使って一度に1行ずつ読むことができます。各行の後にプロンプトが表示されます –