logo

Cin.ignore()-Funktion in C++

In C++ ist die cin.ignore() Die Funktion ist für die Lösung von entscheidender Bedeutung Eingabeprobleme , insbesondere bei Verwendung der Essen Und Getline-Funktionen zusammen. Durch das Löschen des Eingabepuffers und das Entfernen unnötiger Zeichen können Entwickler sicherstellen, dass sich Eingabeprozesse wie erwartet und genau verhalten. In diesem Artikel werden wir das untersuchen cin.ignore()-Funktionen Syntax, Verwendung, Beispiele , Und erwartete Ergebnisse .

Der Strom Klasse cin.ignore()-Funktion kann verwendet werden, um Text bis zu einer bestimmten Anzahl von Zeichen oder bis ein bestimmtes Trennzeichen gefunden wird, zu ignorieren. Seine Syntax ist wie folgt:

cin.ignore(n, Trennzeichen);

Parameter der Funktion Cin.ignore() Syntax:

n (optional): Es gibt an, wie viele Zeichen es sein sollen ignoriert .

Trennzeichen (optional): Es spezifiziert a Trennzeichen , danach wird die Eingabe ignoriert. Wenn nicht angegeben , der Standardwert ist 1 . Wenn nichts ist angegeben , Dann Ewline-Zeichen ('n') wird verwendet von Standard .

Ram-Schauspieler

Verwendung und Funktionsweise der Funktion Cin.ignore():

Der Hauptzweck der cin.ignore()-Funktion ist zu entfernen unerwünschte Charaktere von dem Eingabepuffer . Neue Eingaben können nun gelesen werden, da der Eingabepuffer geleert wurde. Es kann unter verschiedenen Umständen verwendet werden, auch danach Lesen numerischer Eingaben mit Essen , Vor Zeichenfolgen lesen mit getline , und wenn separate Eingabeprozeduren kombiniert werden.

Bis eine der folgenden Bedingungen eintritt erfüllt, cin.ignore() liest Zeichen aus dem Eingabepuffer und verwirft sie:

  1. Wenn 'n' Zeichen angegeben wurden, wurden sie nicht berücksichtigt.
  2. Bis das Trennzeichen (falls angegeben) gefunden wurde, wurden Zeichen ignoriert.
  3. Wenn dies der Fall ist, wird die Eingabepuffer ist voll.

Ein Zeichen weglassen

Stellen wir uns ein einfaches Szenario vor, in dem wir zwei Zeichen vom Benutzer lesen müssen. Aber wir brauchen das nicht erstes Zeichen ; wir brauchen nur die zweite . Wie unten gezeigt, können wir dies mithilfe von erreichen cin.ignore() .

 #include int main() { char secondCharacter; std::cout&lt;&gt;std::noskipws&gt;&gt;secondCharacter; std::cin.ignore(); std::cout&lt;&lt; &apos;The second character is: &apos; &lt;<secondcharacter<<std::endl; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Enter two characters: AB The second character is: B </pre> <p> <strong>Explanation:</strong> </p> <p>In the above example, we use <strong> <em>std::noskipws</em> </strong> to <strong> <em>stop characters</em> </strong> from reading with whitespace skipped. In order to remove the undesirable character after reading the first character, we call <strong> <em>cin.ignore()</em> </strong> without any arguments. As a result, the <strong> <em>&apos;secondCharacter&apos;</em> </strong> variable only contains the <strong> <em>second character</em> </strong> .</p> <h3>Until a Delimiter</h3> <p>Let&apos;s say we simply want to <strong> <em>read</em> </strong> the first word from a user-provided line of text. We can accomplish this with the help of <strong> <em>cin.ignore()</em> </strong> and the delimiter specified as follows:</p> <pre> #include #include int main() { std::string firstWord; std::cout&lt;&gt;std::ws, firstWord, &apos; &apos;); std::cout&lt;&lt; &apos;The first word is: &apos; &lt;<firstword<<std::endl; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Enter a sentence: Hello, World! How are you? The first word is: Hello, </pre> <p> <strong>Explanation:</strong> </p> <p>In the above example, leading <strong> <em>whitespace</em> </strong> is skipped using <strong> <em>std::ws</em> </strong> before the input is read using <strong> <em>getline()</em> </strong> . When the <strong> <em>delimiter</em> </strong> is set to a <strong> <em>space (&apos; &apos;), cin.ignore()</em> </strong> will only extract the first word and disregard all other characters up to that point.</p> <h2>Conclusion:</h2> <p>For addressing input-related concerns and providing exact control over the input buffer, the C++ <strong> <em>cin.ignore() function</em> </strong> is a useful tool. Developers can efficiently handle undesired characters and accomplish the required behavior in their programs by understanding its syntax, usage, and functioning principle.</p> <p>Developers can ensure precise and anticipated input procedures by using the <strong> <em>cin.ignore() function</em> </strong> to skip until a designated delimiter or disregard a set of characters. When working with mixed input types, numeric input that is followed by string input, or when reading strings using <strong> <em>getline()</em> </strong> , this function is quite helpful.</p> <p>Developers can avoid unexpected behavior brought on by lingering characters in the input buffer by properly using <strong> <em>cin.ignore()</em> </strong> . By clearing the buffer and allowing for the reading of new input, this function aids in maintaining the integrity of following input operations.</p> <p>For proper handling of various input conditions, it is imperative to comprehend the parameters and behavior of <strong> <em>cin.ignore()</em> </strong> . With the help of <strong> <em>cin.ignore()</em> </strong> , programmers can create <strong> <em>powerful</em> </strong> and <strong> <em>dependable</em> </strong> input handling systems for their <strong> <em>C++ programs</em> </strong> , whether they want to ignore a single character or skip till a delimiter.</p> <p>In conclusion, the <strong> <em>cin.ignore() function</em> </strong> is a crucial part of C++ input processing since it enables programmers to remove unnecessary characters and guarantee accurate and seamless input operations. Understanding how to use it effectively can considerably improve the stability and usability of C++ applications.</p> <hr></firstword<<std::endl;></pre></secondcharacter<<std::endl;>

Erläuterung:

Im obigen Beispiel verwenden wir std::noskipws Zu Zeichen stoppen vom Lesen mit übersprungenen Leerzeichen. Um das unerwünschte Zeichen nach dem Lesen des ersten Zeichens zu entfernen, rufen wir auf cin.ignore() ohne Argumente. Infolgedessen ist die 'secondCharacter' Variable enthält nur die zweites Zeichen .

Letztes Zeichen aus der Zeichenfolge entfernen

Bis zu einem Trennzeichen

Nehmen wir an, wir wollen es einfach lesen das erste Wort aus einer vom Benutzer bereitgestellten Textzeile. Wir können dies mit Hilfe von erreichen cin.ignore() und das Trennzeichen wie folgt angegeben:

 #include #include int main() { std::string firstWord; std::cout&lt;&gt;std::ws, firstWord, &apos; &apos;); std::cout&lt;&lt; &apos;The first word is: &apos; &lt;<firstword<<std::endl; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Enter a sentence: Hello, World! How are you? The first word is: Hello, </pre> <p> <strong>Explanation:</strong> </p> <p>In the above example, leading <strong> <em>whitespace</em> </strong> is skipped using <strong> <em>std::ws</em> </strong> before the input is read using <strong> <em>getline()</em> </strong> . When the <strong> <em>delimiter</em> </strong> is set to a <strong> <em>space (&apos; &apos;), cin.ignore()</em> </strong> will only extract the first word and disregard all other characters up to that point.</p> <h2>Conclusion:</h2> <p>For addressing input-related concerns and providing exact control over the input buffer, the C++ <strong> <em>cin.ignore() function</em> </strong> is a useful tool. Developers can efficiently handle undesired characters and accomplish the required behavior in their programs by understanding its syntax, usage, and functioning principle.</p> <p>Developers can ensure precise and anticipated input procedures by using the <strong> <em>cin.ignore() function</em> </strong> to skip until a designated delimiter or disregard a set of characters. When working with mixed input types, numeric input that is followed by string input, or when reading strings using <strong> <em>getline()</em> </strong> , this function is quite helpful.</p> <p>Developers can avoid unexpected behavior brought on by lingering characters in the input buffer by properly using <strong> <em>cin.ignore()</em> </strong> . By clearing the buffer and allowing for the reading of new input, this function aids in maintaining the integrity of following input operations.</p> <p>For proper handling of various input conditions, it is imperative to comprehend the parameters and behavior of <strong> <em>cin.ignore()</em> </strong> . With the help of <strong> <em>cin.ignore()</em> </strong> , programmers can create <strong> <em>powerful</em> </strong> and <strong> <em>dependable</em> </strong> input handling systems for their <strong> <em>C++ programs</em> </strong> , whether they want to ignore a single character or skip till a delimiter.</p> <p>In conclusion, the <strong> <em>cin.ignore() function</em> </strong> is a crucial part of C++ input processing since it enables programmers to remove unnecessary characters and guarantee accurate and seamless input operations. Understanding how to use it effectively can considerably improve the stability and usability of C++ applications.</p> <hr></firstword<<std::endl;>

Erläuterung:

Im obigen Beispiel führend Leerzeichen wird mit übersprungen std::ws bevor die Eingabe mit gelesen wird getline() . Wenn das Trennzeichen ist auf a gesetzt Leerzeichen (''), cin.ignore() extrahiert nur das erste Wort und ignoriert alle anderen Zeichen bis zu diesem Punkt.

Abschluss:

Um eingabebezogene Bedenken auszuräumen und eine genaue Kontrolle über den Eingabepuffer bereitzustellen, ist C++ cin.ignore()-Funktion ist ein nützliches Werkzeug. Entwickler können mit unerwünschten Zeichen effizient umgehen und das erforderliche Verhalten in ihren Programmen erreichen, indem sie deren Syntax, Verwendung und Funktionsprinzip verstehen.

Entwickler können präzise und vorhersehbare Eingabeverfahren sicherstellen, indem sie das verwenden cin.ignore()-Funktion um bis zu einem bestimmten Trennzeichen zu springen oder eine Reihe von Zeichen zu ignorieren. Bei der Arbeit mit gemischten Eingabetypen, einer numerischen Eingabe, auf die eine Zeichenfolgeneingabe folgt, oder beim Lesen von Zeichenfolgen mit getline() , diese Funktion ist sehr hilfreich.

Durch die ordnungsgemäße Verwendung können Entwickler unerwartetes Verhalten vermeiden, das durch verbleibende Zeichen im Eingabepuffer verursacht wird cin.ignore() . Durch das Löschen des Puffers und das Ermöglichen des Lesens neuer Eingaben trägt diese Funktion dazu bei, die Integrität der folgenden Eingabevorgänge aufrechtzuerhalten.

Für den ordnungsgemäßen Umgang mit verschiedenen Eingabebedingungen ist es unbedingt erforderlich, die Parameter und das Verhalten von zu verstehen cin.ignore() . Mit der Hilfe von cin.ignore() , Programmierer können erstellen mächtig Und zuverlässig Eingabeverarbeitungssysteme für ihre C++-Programme , ob sie ein einzelnes Zeichen ignorieren oder bis zu einem Trennzeichen überspringen möchten.

Abschließend ist die cin.ignore()-Funktion ist ein entscheidender Teil der C++-Eingabeverarbeitung, da es Programmierern ermöglicht, unnötige Zeichen zu entfernen und genaue und nahtlose Eingabevorgänge zu gewährleisten. Wenn Sie verstehen, wie man es effektiv nutzt, können Sie die Stabilität und Benutzerfreundlichkeit von C++-Anwendungen erheblich verbessern.