logo

Funzione Cin.ignore() in C++

In C++, il cin.ignore() la funzione è essenziale per la risoluzione problemi legati agli input , soprattutto quando si utilizza il mangiare E funzioni getline insieme. Cancellando il buffer di input e rimuovendo i caratteri non necessari, gli sviluppatori possono garantire che i processi di input si comportino come previsto e in modo accurato. In questo articolo esamineremo il cin.ignore() della funzione sintassi, utilizzo, esempi , E risultati attesi .

IL flusso classe funzione cin.ignore() può essere utilizzato per ignorare il testo fino a un determinato numero di caratteri o finché non viene trovato un delimitatore specifico. La sua sintassi è la seguente:

cin.ignore(n, delimitatore);

Parametri della funzione Cin.ignore() Sintassi:

n (facoltativo): Indica quanti caratteri dovrebbero essere ignorato .

Delimitatore (facoltativo): Si specifica a carattere delimitatore , dopodiché l'input verrà ignorato. Altrimenti specificato , il valore predefinito è 1 . Se niente lo è specificato , Poi carattere ewline ('n') è utilizzato da predefinito .

elenco delle freccette

Utilizzo e funzionamento della funzione Cin.ignore():

Lo scopo principale del funzione cin.ignore() è rimuovere personaggi indesiderati dal buffer di ingresso . Ora è possibile leggere il nuovo input perché il buffer di input è stato cancellato. Può essere utilizzato in una varietà di circostanze, anche dopo lettura dell'input numerico con mangiare , Prima leggere le stringhe con getline e quando si combinano procedure di input separate.

Fino a quando non si verifica una delle seguenti condizioni incontrato, cin.ignore() legge caratteri dal buffer di input e li scarta:

  1. Se 'n' personaggi sono stati specificati, sono stati ignorati.
  2. Fino a quando non veniva trovato il delimitatore (se specificato), i caratteri venivano ignorati.
  3. Quando lo fa, il buffer di ingresso è pieno.

Tralasciare un personaggio

Pensiamo a uno scenario semplice in cui dobbiamo leggere due caratteri dall'utente. Ma non abbiamo bisogno del primo carattere ; abbiamo solo bisogno del secondo . Come dimostrato di seguito, possiamo ottenere questo risultato utilizzando 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;>

Spiegazione:

Nell'esempio sopra, usiamo std::noskipws A fermare i personaggi dalla lettura con spazi bianchi saltati. Per rimuovere il carattere indesiderato dopo aver letto il primo carattere, chiamiamo cin.ignore() senza alcun argomento. Di conseguenza, il 'secondo carattere' la variabile contiene solo il file secondo carattere .

Fino a un delimitatore

Diciamo che semplicemente lo vogliamo Leggere la prima parola di una riga di testo fornita dall'utente. Possiamo realizzare questo con l'aiuto di cin.ignore() e il delimitatore specificato come segue:

unisci l'ordinamento Java
 #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;>

Spiegazione:

Nell'esempio sopra, leader spazi bianchi viene saltato utilizzando std::ws prima che l'input venga letto utilizzando getline() . Quando il delimitatore è impostato su a spazio (' '), cin.ignore() estrarrà solo la prima parola e ignorerà tutti gli altri caratteri fino a quel momento.

Conclusione:

Per risolvere i problemi relativi all'input e fornire un controllo esatto sul buffer di input, il metodo C++ funzione cin.ignore() è uno strumento utile. Gli sviluppatori possono gestire in modo efficiente i caratteri indesiderati e ottenere il comportamento richiesto nei loro programmi comprendendone la sintassi, l'utilizzo e il principio di funzionamento.

Gli sviluppatori possono garantire procedure di input precise e anticipate utilizzando il file funzione cin.ignore() per saltare fino a un delimitatore designato o ignorare un set di caratteri. Quando si lavora con tipi di input misti, input numerico seguito da input di stringa o quando si leggono stringhe utilizzando getline() , questa funzione è molto utile.

Gli sviluppatori possono evitare comportamenti imprevisti causati da caratteri persistenti nel buffer di input utilizzando correttamente cin.ignore() . Cancellando il buffer e consentendo la lettura di nuovi input, questa funzione aiuta a mantenere l'integrità delle successive operazioni di input.

Per una corretta gestione delle varie condizioni di input, è fondamentale comprenderne i parametri e il comportamento cin.ignore() . Con l'aiuto di cin.ignore() , i programmatori possono creare potente E affidabile sistemi di gestione degli input per loro Programmi C++ , se vogliono ignorare un singolo carattere o saltare fino a un delimitatore.

In conclusione, il funzione cin.ignore() è una parte cruciale dell'elaborazione dell'input C++ poiché consente ai programmatori di rimuovere i caratteri non necessari e garantire operazioni di input accurate e senza interruzioni. Comprendere come utilizzarlo in modo efficace può migliorare notevolmente la stabilità e l'usabilità delle applicazioni C++.