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:
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:
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.
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