Rumah > pembangunan bahagian belakang > C++ > Mengapa hanya nombor pertama dikira semasa menyimpan input pengguna ke dalam vektor?

Mengapa hanya nombor pertama dikira semasa menyimpan input pengguna ke dalam vektor?

Patricia Arquette
Lepaskan: 2024-10-26 12:01:29
asal
583 orang telah melayarinya

Why is only the first number being counted when storing user input into a vector?

Menyimpan Input Pengguna ke dalam Vektor: Panduan Komprehensif

Dalam pertanyaan ini, pengguna cuba memasukkan berbilang nombor ke dalam vektor dan kemudian mengiranya menggunakan panggilan fungsi. Kod yang disediakan di bawah menunjukkan isu di mana hanya nombor pertama dikira:

<code class="cpp">template <typename T>
void write_vector(const vector<T>&amp; 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>
Salin selepas log masuk

Penyebabnya terletak pada fakta bahawa pada masa ini, hanya satu integer sedang dibaca daripada pengguna. Untuk membetulkan ini, gelung diperlukan.

<code class="cpp">while (cin >> input)
    V.push_back(input);</code>
Salin selepas log masuk

Gelung ini secara berterusan mendapatkan semula integer daripada input standard sehingga tiada lagi input tersedia. Proses input berakhir apabila cin mengesan hujung fail (EOF) atau menemui nilai bukan integer.

Sebagai alternatif, nilai sentinel boleh digunakan, yang mempunyai kelemahan menghalang pengguna daripada memasukkan nilai tertentu itu . Contohnya:

<code class="cpp">while ((cin >> input) && input != 9999)
    V.push_back(input);</code>
Salin selepas log masuk

Dalam senario ini, input dikumpul sehingga pengguna memasuki 9999 (atau mencetuskan syarat lain yang menjadikan cin tidak sah), di mana gelung ditamatkan.

Atas ialah kandungan terperinci Mengapa hanya nombor pertama dikira semasa menyimpan input pengguna ke dalam vektor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan