logo

Cin.ignore() függvény a C++-ban

C++ nyelven a cin.ignore() funkció nélkülözhetetlen a megoldáshoz bevitellel kapcsolatos problémák , különösen a enni és getline függvények együtt. A beviteli puffer törlésével és a szükségtelen karakterek eltávolításával a fejlesztők biztosíthatják, hogy a beviteli folyamatok a várt módon és pontosan működjenek. Ebben a cikkben megvizsgáljuk a cin.ignore() függvény szintaxis, használat, példák , és várható kimenetek .

A folyam osztályé cin.ignore() függvény használható szöveg figyelmen kívül hagyására adott számú karakterig, vagy amíg egy adott határolót meg nem találunk. A szintaxisa a következő:

cin.ignore(n, határoló);

A Cin.ignore() függvény paraméterei Szintaxis:

n (nem kötelező): Azt jelzi, hogy hány karakterből kell állnia figyelmen kívül hagyva .

Határoló (nem kötelező): Meghatározza a határoló karakter , amely után a bevitel figyelmen kívül marad. Ha nem meghatározott , alapértelmezés szerint 1 . Ha semmi sem meghatározott , akkor ewline karakter ('n') használja alapértelmezett .

aludj js-ben

A Cin.ignore() függvény használata és működése:

A fő célja a cin.ignore() függvény az eltávolítása nemkívánatos karakterek tól bemeneti puffer . Az új bemenet most már olvasható, mert a bemeneti puffert törölték. Különféle körülmények között használható, beleértve az utána is numerikus bemenet olvasása val vel enni , előtte húrok olvasása val vel getline és külön beviteli eljárások kombinálásakor.

Amíg az alábbi feltételek valamelyike ​​be nem teljesül met, a cin.ignore() beolvas karaktereket a beviteli pufferből, és elveti őket:

  1. Ha 'n' karakterek megadták, figyelmen kívül hagyták.
  2. Amíg a határolót meg nem találta, figyelmen kívül hagyta a karaktereket.
  3. Amikor ez megtörténik, a bemeneti puffer tele van.

Egy karakter kihagyása

Gondoljunk egy egyszerű forgatókönyvre, amikor két karaktert kell kiolvasnunk a felhasználóból. De nincs szükségünk rá első karakter ; nekünk csak a második . Ahogy az alábbiakban bemutatjuk, ezt a használatával is megvalósíthatjuk 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;>

Magyarázat:

A fenti példában használjuk std::noskipws nak nek stop karakterek olvasásból kihagyott szóközzel. A nemkívánatos karakter eltávolítása érdekében az első karakter elolvasása után hívjuk cin.ignore() minden érv nélkül. Ennek eredményeként a 'második karakter' változó csak a második karakter .

Egészen határolóig

Tegyük fel, hogy egyszerűen szeretnénk olvas az első szó a felhasználó által megadott szövegsorból. Ezt a segítségével tudjuk megvalósítani cin.ignore() és a következőképpen meghatározott határolójel:

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

Magyarázat:

A fenti példában vezető fehér űr használata kimaradt std::ws mielőtt a bemenetet a segítségével beolvassa getline() . Amikor az határoló értékre van állítva szóköz (' '), cin.ignore() csak az első szót bontja ki, és figyelmen kívül hagyja az összes többi karaktert addig a pontig.

megegyezik a java metódussal

Következtetés:

A bemenettel kapcsolatos problémák megoldására és a bemeneti puffer, a C++ pontos vezérlésére cin.ignore() függvény hasznos eszköz. A fejlesztők hatékonyan tudják kezelni a nemkívánatos karaktereket, és megvalósítani a szükséges viselkedést a programjaikban a szintaxis, a használat és a működési elv megértésével.

A fejlesztők pontos és előre látható beviteli eljárásokat biztosíthatnak a cin.ignore() függvény a kijelölt határolóig ugráshoz vagy egy karakterkészlet figyelmen kívül hagyásához. Ha vegyes beviteli típusokkal dolgozik, akkor a numerikus bevitelt, amelyet karakterlánc bevitel követ, vagy amikor a karakterláncokat a getline() , ez a funkció nagyon hasznos.

A fejlesztők megfelelő használatával elkerülhetik a váratlan viselkedést, amelyet a bemeneti pufferben elhúzódó karakterek okoznak cin.ignore() . A puffer törlésével és az új bemenet olvasásának lehetővé tételével ez a funkció segít a következő beviteli műveletek integritásának megőrzésében.

A különböző bemeneti feltételek megfelelő kezeléséhez elengedhetetlen a paraméterek és a viselkedés megértése cin.ignore() . Segítségével cin.ignore() , a programozók létrehozhatnak erős és megbízható bemenetkezelő rendszereik számára C++ programok , akár egyetlen karaktert akarnak figyelmen kívül hagyni, akár egy határolóig ugrani.

Összegzésként a cin.ignore() függvény A C++ beviteli feldolgozás kulcsfontosságú része, mivel lehetővé teszi a programozók számára, hogy eltávolítsák a szükségtelen karaktereket, és garantálják a pontos és zökkenőmentes beviteli műveleteket. A hatékony használatának megértése jelentősen javíthatja a C++ alkalmazások stabilitását és használhatóságát.