logo

Funcția Cin.ignore() în C++

În C++, cin.ignore() funcția este esențială pentru rezolvare probleme legate de intrare , mai ales când se utilizează mâncând și funcții getline împreună. Prin ștergerea memoriei tampon de introducere și eliminarea caracterelor inutile, dezvoltatorii se pot asigura că procesele de intrare se comportă conform așteptărilor și cu acuratețe. În acest articol, vom examina funcția cin.ignore(). sintaxă, utilizare, exemple , și rezultate așteptate .

The curent ale clasei funcția cin.ignore(). poate fi folosit pentru a ignora textul de până la un anumit număr de caractere sau până când este găsit un anumit delimitator. Sintaxa sa este următoarea:

cin.ignore(n, delimitator);

Parametrii funcției Cin.ignore() Sintaxa:

n (opțional): Indică câte caractere ar trebui să fie ignorat .

Delimitator (opțional): Se specifică a caracter delimitator , după care intrarea va fi ignorată. Dacă nu specificat , este implicit 1 . Dacă nimic nu este specificat , apoi caracter ewline ('n') este folosit de Mod implicit .

exemplu de javascript

Utilizarea și funcționarea funcției Cin.ignore():

Scopul principal al funcția cin.ignore(). este a elimina personaje nedorite de la tampon de intrare . Noua intrare poate fi citită acum deoarece tamponul de intrare a fost șters. Poate fi folosit într-o varietate de circumstanțe, inclusiv după citirea introducerii numerice cu mâncând , inainte de siruri de citire cu getline și la combinarea procedurilor de introducere separate.

Până când una dintre următoarele condiții este întâlnit, cin.ignore() citește caractere din buffer-ul de intrare și le elimină:

  1. Dacă 'n' caractere au fost specificate, au fost ignorate.
  2. Până când a fost găsit delimitatorul (dacă este specificat), acesta a ignorat caracterele.
  3. Când se întâmplă, tampon de intrare e plin.

Lăsând afară un personaj

Să ne gândim la un scenariu simplu în care trebuie să citim două personaje de la utilizator. Dar nu avem nevoie de primul personaj ; avem nevoie doar de al doilea . După cum se demonstrează mai jos, putem realiza acest lucru folosind 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;>

Explicaţie:

În exemplul de mai sus, folosim std::noskipws la oprește personaje de la lectură cu spații albe sărit. Pentru a elimina caracterul nedorit după citirea primului caracter, apelăm cin.ignore() fara niciun argument. Drept urmare, „al doilea caracter” variabila conține doar al doilea personaj .

concat șir java

Până la un Delimitator

Să spunem că pur și simplu vrem citit primul cuvânt dintr-o linie de text furnizată de utilizator. Putem realiza acest lucru cu ajutorul lui cin.ignore() și delimitatorul specificat după cum urmează:

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

Explicaţie:

În exemplul de mai sus, conducând spatiu alb se omite utilizând std::ws înainte ca intrarea să fie citită folosind getline() . Cand delimitator este setat la a spațiu (' '), cin.ignore() va extrage doar primul cuvânt și va ignora toate celelalte caractere până în acel moment.

Concluzie:

Pentru a rezolva problemele legate de intrare și pentru a oferi control exact asupra tamponului de intrare, C++ funcția cin.ignore(). este un instrument util. Dezvoltatorii pot gestiona eficient caracterele nedorite și pot realiza comportamentul necesar în programele lor, înțelegând sintaxa, utilizarea și principiul de funcționare.

Dezvoltatorii pot asigura proceduri de intrare precise și anticipate utilizând funcția cin.ignore(). să săriți până la un delimitator desemnat sau să ignorați un set de caractere. Când lucrați cu tipuri de intrare mixte, introducerea numerică care este urmată de introducerea șirurilor de caractere sau când citiți șirurile de caractere folosind getline() , această funcție este destul de utilă.

Dezvoltatorii pot evita comportamentul neașteptat cauzat de caracterele persistente în buffer-ul de introducere prin utilizarea corectă cin.ignore() . Prin ștergerea tamponului și permițând citirea noilor intrări, această funcție ajută la menținerea integrității operațiunilor de intrare următoare.

Pentru gestionarea corectă a diferitelor condiții de intrare, este imperativ să înțelegeți parametrii și comportamentul cin.ignore() . Cu ajutorul cin.ignore() , programatorii pot crea puternic și de încredere sisteme de manipulare a intrărilor pentru lor programe C++ , indiferent dacă doresc să ignore un singur caracter sau să sară până la un delimitator.

În concluzie, cel funcția cin.ignore(). este o parte esențială a procesării intrărilor C++, deoarece le permite programatorilor să elimine caracterele inutile și să garanteze operațiuni de introducere precise și fără întreruperi. Înțelegerea modului de utilizare eficientă poate îmbunătăți considerabil stabilitatea și capacitatea de utilizare a aplicațiilor C++.