logo

Fonction Cin.ignore() en C++

En C++, le cin.ignore() la fonction est essentielle pour résoudre problèmes liés à la saisie , surtout lors de l'utilisation du manger et fonctions getline ensemble. En effaçant le tampon d'entrée et en supprimant les caractères inutiles, les développeurs peuvent garantir que les processus d'entrée se comportent comme prévu et avec précision. Dans cet article, nous examinerons les Fonction cin.ignore() syntaxe, utilisation, exemples , et résultats attendus .

Le flux la classe Fonction cin.ignore() peut être utilisé pour ignorer le texte jusqu'à un nombre donné de caractères ou jusqu'à ce qu'un délimiteur spécifique soit trouvé. Sa syntaxe est la suivante :

cin.ignore(n, délimiteur);

Paramètres de la fonction Cin.ignore() Syntaxe :

n (facultatif) : Il indique combien de caractères doivent être ignoré .

Délimiteur (facultatif) : Il précise un caractère délimiteur , après quoi l'entrée sera ignorée. Sinon spécifié , la valeur par défaut est 1 . Si rien n'est spécifié , alors caractère de nouvelle ligne ('n') est utilisé par défaut .

Utilisation et fonctionnement de la fonction Cin.ignore() :

L'objectif principal du Fonction cin.ignore() est de supprimer personnages indésirables du tampon d'entrée . La nouvelle entrée peut maintenant être lue car le tampon d'entrée a été vidé. Il peut être utilisé dans diverses circonstances, notamment après lecture d'une entrée numérique avec manger , avant lecture de chaînes avec obtenir la ligne , et lors de la combinaison de procédures de saisie distinctes.

Jusqu'à ce que l'une des conditions suivantes soit rencontré, cin.ignore() lit caractères du tampon d'entrée et les supprime :

  1. Si et des personnages ont été précisés, ils ont été ignorés.
  2. Jusqu'à ce que le délimiteur (s'il est spécifié) soit trouvé, il ignorait les caractères.
  3. Quand c'est le cas, le tampon d'entrée est rempli.

Laisser de côté un personnage

Pensons à un scénario simple dans lequel nous devons lire deux caractères de l'utilisateur. Mais nous n'avons pas besoin du premier personnage ; nous avons seulement besoin du deuxième . Comme démontré ci-dessous, nous pouvons y parvenir en utilisant 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;>

Explication:

Dans l'exemple ci-dessus, nous utilisons std :: noskipws à arrêter les personnages de la lecture avec des espaces ignorés. Afin de supprimer le caractère indésirable après la lecture du premier caractère, on appelle cin.ignore() sans aucun argument. En conséquence, le 'secondCaractère' la variable ne contient que le deuxième personnage .

Jusqu'à un délimiteur

Disons que nous voulons simplement lire le premier mot d’une ligne de texte fournie par l’utilisateur. Nous pouvons y parvenir avec l'aide de cin.ignore() et le délimiteur spécifié comme suit :

 #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;>

Explication:

Dans l'exemple ci-dessus, menant espace est ignoré en utilisant std :: ws avant que l'entrée soit lue en utilisant obtenir la ligne() . Quand le délimiteur est réglé sur un espace (' '), cin.ignore() n'extrairea que le premier mot et ignorera tous les autres caractères jusqu'à ce point.

Conclusion:

Pour répondre aux problèmes liés aux entrées et fournir un contrôle exact sur le tampon d'entrée, le C++ Fonction cin.ignore() est un outil utile. Les développeurs peuvent gérer efficacement les caractères indésirables et accomplir le comportement requis dans leurs programmes en comprenant sa syntaxe, son utilisation et son principe de fonctionnement.

Les développeurs peuvent garantir des procédures de saisie précises et anticipées en utilisant le Fonction cin.ignore() pour passer jusqu'à un délimiteur désigné ou ignorer un ensemble de caractères. Lorsque vous travaillez avec des types d'entrée mixtes, une entrée numérique suivie d'une entrée de chaîne ou lors de la lecture de chaînes à l'aide de obtenir la ligne() , cette fonction est très utile.

Les développeurs peuvent éviter un comportement inattendu provoqué par des caractères persistants dans le tampon d'entrée en utilisant correctement cin.ignore() . En effaçant le tampon et en permettant la lecture d'une nouvelle entrée, cette fonction aide à maintenir l'intégrité des opérations d'entrée suivantes.

Pour une gestion correcte des diverses conditions d'entrée, il est impératif de comprendre les paramètres et le comportement de cin.ignore() . Avec l'aide de cin.ignore() , les programmeurs peuvent créer puissant et sûr systèmes de traitement des entrées pour leurs Programmes C++ , qu'ils souhaitent ignorer un seul caractère ou passer jusqu'à un délimiteur.

En conclusion, le Fonction cin.ignore() est un élément crucial du traitement des entrées C++ car il permet aux programmeurs de supprimer les caractères inutiles et de garantir des opérations de saisie précises et transparentes. Comprendre comment l'utiliser efficacement peut améliorer considérablement la stabilité et la convivialité des applications C++.