Zeicheneingabe in While-Schleife mit C++

Muhammad Husnain 15 Februar 2024
Zeicheneingabe in While-Schleife mit C++

Diese einfache Anleitung behandelt die Übergabe von Eingaben in C++. Darüber hinaus werden wir uns mit der Problematik des Umgangs mit ungültigen Eingaben durch den Benutzer befassen. Abschließend besprechen wir, wie die Eingabe des Benutzers mit der while-Schleife abgenommen werden kann.

Erstens sollte man das Verfahren kennen, um Eingabedaten vom Benutzer in C++ zu übernehmen. Die Bibliothek iostream in C++ stellt uns die Funktion cin zur Verfügung. Es nimmt die Eingabe des Benutzers entgegen und speichert den Wert in der verwendeten Variablen.

Codebeispiel:

int x;
cin >> x;

In diesem Code ist x eine integer-Variable, die in Zeile Nr. 1 deklariert ist, und die Eingabe erfolgt in Zeile Nr. 2. cin fordert den Benutzer auf, die Daten einzugeben und diese Daten in der Variablen x zu speichern. Dieser Wert muss ein integer-Wert sein; Andernfalls wird der Wert teilweise in x gespeichert oder nicht gespeichert.

Verwenden Sie die while-Schleife mit der cin-Funktion in C++

Betrachten Sie ein weiteres Beispiel, bei dem wir mehrere Eingaben vornehmen möchten, bis der Benutzer einige ungültige Daten eingibt. Wenn einige ungültige Daten eingegeben werden, sollte die Eingabe geschlossen werden.

Code:

int main() {
  int a;
  ;
  while (cin >> a) {
    cout << "You entered the correct input value" << endl;
  }
  cout << "Sorry, you have entered wrong type of data." << endl;
}

Ausgang:

verwenden Sie while cin, um mehrere Eingaben zu übernehmen, bis der Benutzer ungültige Daten eingibt

Der Benutzer wird aufgefordert, einen Wert einzugeben, und wir haben den Wert 2 eingegeben, was ein int-Wert ist. Die Schleife wird also weiter durchlaufen, und der Benutzer wird erneut aufgefordert.

Nach drei Versuchen haben wir einige Zeichen (z. B. abc) eingegeben, die nicht vom Typ int sind. Dadurch wird der Standard-Eingabestrom (der mit cin verknüpft ist) zerstört, und der Ausdruck cin >> a gibt false zurück.

Daher wird die Schleife unterbrochen und die Steuerung wird auf die Leitung außerhalb der Schleife verschoben. Wir können verhindern, dass einige ungültige Daten auf diese Weise eingegeben werden.

Eine andere Möglichkeit, dieselbe Aufgabe zu erfüllen, wird in diesem nächsten Beispiel gezeigt.

Code:

int main() {
  int a;
  ;
  while (cin) {
    cin >> a;
    cout << "You entered the correct input value" << endl;
  }
  cout << "Sorry, you have entered a wrong type of data." << endl;
}

Wir sollten wissen, dass cin vier Zustände hat, nämlich gut, schlecht, nicht bestanden und EOF. cin befindet sich in seinem guten Zustand, wenn der obige Code ausgeführt wird.

Wir haben cin als Schleifenbedingung verwendet. Wenn der Code ausgeführt wird, befindet sich cin in einem guten Zustand und gibt true zurück.

Daher wird die while-Schleife ausgeführt und fordert den Benutzer auf, einen Wert für a einzugeben.

Ausgang:

verwenden Sie while cin, um mehrere Eingaben zu übernehmen, bis der Benutzer ungültige Daten eingibt 2

Sobald die falschen Daten eingegeben werden, bricht die Schleife nicht sofort ab, sondern nach einer Iteration.

Sobald der mit cin verknüpfte Standardeingabestrom in einen Fehlerzustand übergeht, können keine weiteren Eingaben vorgenommen werden, bis der Zustand nicht auf guten Zustand zurückgesetzt wird. Wir können den ungültigen Zustand von cin mit der Funktion cin.clear() löschen und die Funktion cin.ignore(numeric_limits<streamsize>::max(), '\n') kann zum Löschen verwendet werden ungültige Eingabe aus dem Stream.

Dadurch können wir die Eingaben des Benutzers erneut entgegennehmen, ohne die Ausführung zu unterbrechen.

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

Verwandter Artikel - C++ Loop