logo

Funkcija Cin.ignore() v C++

V C++ je cin.ignore() funkcija je bistvena za razrešitev težave, povezane z vnosom , še posebej pri uporabi prehranjevanje in funkcije getline skupaj. S čiščenjem vnosnega medpomnilnika in odstranitvijo nepotrebnih znakov lahko razvijalci zagotovijo, da se vnosni procesi obnašajo po pričakovanjih in natančno. V tem članku bomo preučili funkcije cin.ignore(). sintaksa, uporaba, primeri , in pričakovanih rezultatov .

The tok razreda funkcijo cin.ignore(). lahko uporabite za prezrtje besedila do določenega števila znakov ali dokler ni najdeno določeno ločilo. Njegova sintaksa je naslednja:

cin.ignore(n, ločilo);

Parametri sintakse funkcije Cin.ignore():

n (neobvezno): Označuje, koliko znakov mora biti prezrti .

Ločilo (neobvezno): Določa a ločilni znak , po katerem se vnos ne bo upošteval. Če ne določeno , privzeto je 1 . Če nič ni določeno , n znak ewline ('n') uporablja ga privzeto .

vrste računalnika

Uporaba in delovanje funkcije Cin.ignore():

Glavni namen funkcijo cin.ignore(). je odstraniti nezaželenih likov Iz vhodni medpomnilnik . Nov vnos je zdaj mogoče prebrati, ker je bil vhodni medpomnilnik počiščen. Uporablja se lahko v različnih okoliščinah, tudi po branje številskega vnosa z prehranjevanje , prej branje nizov z getline in pri kombiniranju ločenih vnosnih postopkov.

Dokler ni izpolnjen eden od naslednjih pogojev met, cin.ignore() bere znakov iz vnosnega medpomnilnika in jih zavrže:

  1. če 'n' znakov so bili navedeni, niso bili upoštevani.
  2. Dokler ni bil najden ločilo (če je določeno), ni upoštevalo znakov.
  3. Ko se to zgodi, vhodni medpomnilnik je poln.

Izpuščanje enega znaka

Razmislimo o enostavnem scenariju, kjer moramo od uporabnika prebrati dva znaka. Ampak ne potrebujemo prvi znak ; potrebujemo samo drugo . Kot je prikazano spodaj, lahko to dosežemo z uporabo 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;>

Pojasnilo:

V zgornjem primeru uporabljamo std::noskipws do stop znakov od branja s preskočenimi presledki. Za odstranitev nezaželenega znaka po branju prvega znaka pokličemo cin.ignore() brez argumentov. Kot rezultat, 'secondCharacter' spremenljivka vsebuje samo drugi znak .

Do ločila

Recimo, da preprosto želimo prebrati prva beseda iz vrstice besedila, ki jo poda uporabnik. To lahko dosežemo s pomočjo cin.ignore() in ločilo, kot sledi:

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

Pojasnilo:

V zgornjem primeru vodilni presledek je preskočeno z uporabo std::ws preden se vnos prebere z uporabo getline() . Ko ločilo je nastavljen na a presledek (' '), cin.ignore() bo izvlekel samo prvo besedo in zanemaril vse druge znake do te točke.

Zaključek:

Za obravnavo vprašanj, povezanih z vnosom, in zagotavljanje natančnega nadzora nad vhodnim medpomnilnikom, C++ funkcijo cin.ignore(). je uporabno orodje. Razvijalci lahko učinkovito obravnavajo neželene znake in dosežejo zahtevano vedenje v svojih programih z razumevanjem sintakse, uporabe in načela delovanja.

Razvijalci lahko zagotovijo natančne in pričakovane postopke vnosa z uporabo funkcijo cin.ignore(). da preskočite do določenega ločila ali prezrete nabor znakov. Pri delu z mešanimi vrstami vnosa, številskim vnosom, ki mu sledi vnos niza, ali pri branju nizov z getline() , je ta funkcija zelo koristna.

Razvijalci se lahko s pravilno uporabo izognejo nepričakovanemu vedenju, ki ga povzročajo dolgotrajni znaki v vnosnem medpomnilniku cin.ignore() . S čiščenjem medpomnilnika in omogočanjem branja novega vnosa ta funkcija pomaga pri ohranjanju celovitosti naslednjih vnosnih operacij.

Za pravilno ravnanje z različnimi vhodnimi pogoji je nujno razumeti parametre in obnašanje cin.ignore() . S pomočjo cin.ignore() , programerji lahko ustvarijo močan in zanesljiv sisteme za obdelavo vnosa za svoje C++ programi , ali želijo prezreti en znak ali preskočiti do ločila.

Skratka, funkcijo cin.ignore(). je ključni del obdelave vnosa C++, saj programerjem omogoča, da odstranijo nepotrebne znake in zagotovijo natančne in brezhibne vnosne operacije. Razumevanje, kako ga učinkovito uporabljati, lahko znatno izboljša stabilnost in uporabnost aplikacij C++.