Articles

GeeksforGeeks

未知数の整数入力を取る必要がある問題を考えてみましょう。

典型的な解決策は、ループを実行し、ユーザが特定の値を入力したら停止することです。 if-elseやswitch-case、条件文が使えない場合はどうすればいいのか。

アイデアは、「cin >> input」は非数値が与えられると偽になるという事実を利用することです。 なお、この方法は入力値のデータ型がint(整数)の場合のみ成立します。

重要なポイント : cinはstd::istreamのオブジェクトである。 C++11以降では、std::istreamは変換関数explicit bool() const;を持ちます。これは、std::istreamからboolへの変換は有効であるが、明示的に要求された場合のみであることを意味します。 if や while は、bool への変換を明示的に要求しているものとしてカウントされます。
C++ 11 以前では、std::istream には演算子 void*() const への変換がありました。

#include <iostream>
using namespace std;
int main()
{
int input;
int count = 0;
cout << "To stop enter any character";
cout << "\nEnter Your Input::";
while (cin >> input)
count++;
cout << "\nTotal number of inputs entered: "
<< count;
return 0;
}



出力します。

To stop enter any characterEnter Your Input 1 2 3 sTotal number of inputs entered: 3

この記事はAditya Rakhechaによって寄稿されました。 GeeksforGeeksが好きで、貢献したい場合は、contribute.geeksforgeeks.orgを使って記事を書くか、[email protected] まで記事を郵送することもできます。 あなたの記事が GeeksforGeeks のメインページに掲載され、他の Geeks を助けることができます