logo

Funktionen Cin.ignore() i C++

I C++ er cin.ignore() funktion er afgørende for at løse input-relaterede problemer , især når du bruger spise og getline funktioner sammen. Ved at rydde inputbufferen og fjerne unødvendige tegn kan udviklere sikre, at inputprocesser opfører sig som forventet og præcist. I denne artikel vil vi undersøge cin.ignore()-funktionens syntaks, brug, eksempler , og forventede output .

Det strøm klasses cin.ignore() funktion kan bruges til at ignorere tekst op til et givet antal tegn, eller indtil en specifik afgrænsning er fundet. Dens syntaks er som følger:

cin.ignore(n, afgrænsning);

Parametre for funktionen Cin.ignore() Syntaks:

n (valgfrit): Det angiver, hvor mange tegn der skal være ignoreret .

Afgrænsningstegn (valgfrit): Det specificerer en skilletegn , hvorefter input vil blive ignoreret. Hvis ikke specificeret , den er som standard 1 . Hvis intet er specificeret , derefter ewline-tegn ('n') bruges af Standard .

25 af 100

Brug og betjening af Cin.ignore()-funktionen:

Hovedformålet med cin.ignore() funktion er at fjerne uønskede karakterer fra input buffer . Nyt input kan nu læses, fordi inputbufferen er blevet ryddet. Det kan bruges i en række forskellige omstændigheder, herunder efter læse numerisk input med spise , Før læsestrenge med getline , og når man kombinerer separate inputprocedurer.

Indtil en af ​​følgende betingelser er mødt, cin.ignore() læser tegn fra inputbufferen og kasserer dem:

  1. Hvis 'n' tegn blev specificeret, blev de tilsidesat.
  2. Indtil afgrænsningstegnet (hvis angivet) blev fundet, ignorerede det tegn.
  3. Når den gør det input buffer er fuld.

Udelader én karakter

Lad os tænke på et ligetil scenarie, hvor vi skal læse to tegn fra brugeren. Men vi har ikke brug for det første tegn ; vi har kun brug for anden . Som vist nedenfor, kan vi opnå dette ved at bruge 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;>

Forklaring:

I ovenstående eksempel bruger vi std::noskipws til stop tegn fra læsning med blanktegn sprunget over. For at fjerne det uønskede tegn efter at have læst det første tegn, ringer vi cin.ignore() uden nogen argumenter. Som følge heraf 'andet tegn' variabel indeholder kun andet tegn .

Indtil en afgrænsning

Lad os sige, at vi bare vil Læs det første ord fra en tekstlinje fra brugeren. Det kan vi opnå ved hjælp af cin.ignore() og afgrænsningen angivet som følger:

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

Forklaring:

I ovenstående eksempel, førende hvidt rum springes over at bruge std::ws før input læses vha getline() . Når afgrænsning er indstillet til a mellemrum (' '), cin.ignore() vil kun udtrække det første ord og se bort fra alle andre tegn indtil det tidspunkt.

Konklusion:

Til at adressere input-relaterede bekymringer og give nøjagtig kontrol over inputbufferen, C++ cin.ignore() funktion er et nyttigt værktøj. Udviklere kan effektivt håndtere uønskede karakterer og opnå den påkrævede adfærd i deres programmer ved at forstå dets syntaks, brug og funktionsprincip.

Udviklere kan sikre præcise og forventede inputprocedurer ved at bruge cin.ignore() funktion for at springe over, indtil der er angivet en afgrænsning, eller se bort fra et sæt tegn. Når du arbejder med blandede inputtyper, numerisk input, der efterfølges af strenginput, eller når du læser strenge vha. getline() , denne funktion er ret nyttig.

fibonacci-sekvens java

Udviklere kan undgå uventet adfærd forårsaget af dvælende tegn i inputbufferen ved korrekt brug cin.ignore() . Ved at rydde bufferen og tillade læsning af nyt input, hjælper denne funktion med at opretholde integriteten af ​​følgende inputhandlinger.

For korrekt håndtering af forskellige inputforhold er det bydende nødvendigt at forstå parametrene og adfærden af cin.ignore() . Med hjælp fra cin.ignore() , kan programmører oprette magtfulde og pålidelig inputhåndteringssystemer til deres C++ programmer , om de vil ignorere et enkelt tegn eller springe til et afgrænsningstegn.

Afslutningsvis cin.ignore() funktion er en afgørende del af C++ inputbehandling, da den gør det muligt for programmører at fjerne unødvendige tegn og garantere nøjagtige og problemfri inputoperationer. At forstå, hvordan man bruger det effektivt, kan forbedre stabiliteten og anvendeligheden af ​​C++-applikationer betydeligt.