ベクトルへのユーザー入力の保存: 総合ガイド
この問い合わせでは、ユーザーはベクトルに複数の数値を入力しようとしています。その後、関数呼び出しを使用してそれらをカウントします。以下に示すコードは、最初の数値のみがカウントされるという問題を示しています。
<code class="cpp">template <typename T> void write_vector(const vector<T>& V) { cout << "The numbers in the vector are: " << endl; for(int i=0; i < V.size(); i++) cout << V[i] << " "; } int main() { int input; vector<int> V; cout << "Enter your numbers to be evaluated: " << endl; cin >> input; V.push_back(input); write_vector(V); return 0; }</code>
原因は、現在ユーザーから 1 つの整数のみが読み取られているという事実にあります。これを解決するには、ループが必要です。
<code class="cpp">while (cin >> input) V.push_back(input);</code>
このループは、使用可能な入力がなくなるまで、標準入力から整数を継続的に取得します。入力プロセスは、cin がファイルの終わり (EOF) を検出するか、非整数値に遭遇すると終了します。
代わりにセンチネル値を使用することもできますが、これにはユーザーがその特定の値を入力できなくなるという欠点があります。 。例:
<code class="cpp">while ((cin >> input) && input != 9999) V.push_back(input);</code>
このシナリオでは、ユーザーが 9999 を入力する (または cin を無効にする別の条件をトリガーする) まで入力が収集され、その後ループが終了します。
以上がユーザー入力をベクトルに保存するときに最初の数値だけがカウントされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。