Heim > Backend-Entwicklung > C++ > Warum wird beim Speichern von Benutzereingaben in einem Vektor nur die erste Zahl gezählt?

Warum wird beim Speichern von Benutzereingaben in einem Vektor nur die erste Zahl gezählt?

Patricia Arquette
Freigeben: 2024-10-26 12:01:29
Original
583 Leute haben es durchsucht

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

Benutzereingaben in einem Vektor speichern: Eine umfassende Anleitung

In dieser Anfrage versucht ein Benutzer, mehrere Zahlen in einen Vektor einzugeben und anschließend mit einem Funktionsaufruf zählen. Der unten bereitgestellte Code stellt ein Problem dar, bei dem nur die erste Zahl gezählt wird:

<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>
Nach dem Login kopieren

Der Übeltäter liegt in der Tatsache, dass derzeit nur eine einzige Ganzzahl vom Benutzer gelesen wird. Um dies zu beheben, ist eine Schleife erforderlich.

<code class="cpp">while (cin >> input)
    V.push_back(input);</code>
Nach dem Login kopieren

Diese Schleife ruft kontinuierlich ganze Zahlen von der Standardeingabe ab, bis keine Eingabe mehr verfügbar ist. Der Eingabevorgang wird abgeschlossen, wenn cin das Ende der Datei (EOF) erkennt oder auf einen nicht ganzzahligen Wert stößt.

Alternativ kann ein Sentinel-Wert verwendet werden, der den Nachteil hat, dass der Benutzer diesen bestimmten Wert nicht eingeben kann . Zum Beispiel:

<code class="cpp">while ((cin >> input) && input != 9999)
    V.push_back(input);</code>
Nach dem Login kopieren

In diesem Szenario werden Eingaben gesammelt, bis der Benutzer 9999 eingibt (oder eine andere Bedingung auslöst, die cin ungültig macht), woraufhin die Schleife endet.

Das obige ist der detaillierte Inhalt vonWarum wird beim Speichern von Benutzereingaben in einem Vektor nur die erste Zahl gezählt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage