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 を助けることができます
。