logo

Função Cin.ignore() em C++

Em C++, o cin.ignore() função é essencial para resolver problemas relacionados a entradas , especialmente ao usar o comendo e funções getline junto. Ao limpar o buffer de entrada e remover caracteres desnecessários, os desenvolvedores podem garantir que os processos de entrada se comportem conforme o esperado e com precisão. Neste artigo, examinaremos o função cin.ignore() sintaxe, uso, exemplos , e resultados esperados .

O fluxo aula função cin.ignore() pode ser usado para ignorar texto até um determinado número de caracteres ou até que um delimitador específico seja encontrado. Sua sintaxe é a seguinte:

cin.ignore(n, delimitador);

Parâmetros da função Cin.ignore() Sintaxe:

n (opcional): Indica quantos caracteres devem ter ignorado .

Delimitador (opcional): Ele especifica um caractere delimitador , após o qual a entrada será desconsiderada. Se não Especificadas , o padrão é 1 . Se nada for Especificadas , então caractere ewline ('n') é usado por padrão .

dormir para javascript

Uso e operação da função Cin.ignore():

O objetivo principal do função cin.ignore() é remover personagens indesejáveis de buffer de entrada . A nova entrada agora pode ser lida porque o buffer de entrada foi limpo. Pode ser usado em diversas circunstâncias, inclusive após lendo entrada numérica com comendo , antes lendo cordas com Obter linha e ao combinar procedimentos de entrada separados.

Até que uma das seguintes condições seja encontrado, cin.ignore() lê caracteres do buffer de entrada e os descarta:

  1. Se 'n' caracteres foram especificados, eles foram desconsiderados.
  2. Até o delimitador (se especificado) ser encontrado, ele desconsiderava os caracteres.
  3. Quando isso acontece, o buffer de entrada está cheio.

Deixando de fora um personagem

Vamos pensar em um cenário simples onde precisamos ler dois caracteres do usuário. Mas não precisamos do primeiro personagem ; só precisamos do segundo . Conforme demonstrado abaixo, podemos fazer isso usando 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ção:

No exemplo acima, usamos std::noskipws para parar caracteres da leitura com espaços em branco ignorados. Para remover o caractere indesejável após a leitura do primeiro caractere, chamamos cin.ignore() sem quaisquer argumentos. Como resultado, o 'segundo personagem' variável contém apenas o segundo personagem .

Até um delimitador

Digamos que simplesmente queremos ler a primeira palavra de uma linha de texto fornecida pelo usuário. Podemos conseguir isso com a ajuda de cin.ignore() e o delimitador especificado da seguinte forma:

 #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ção:

No exemplo acima, liderando espaço em branco é ignorado usando std::ws antes que a entrada seja lida usando Obter linha() . Quando o delimitador está definido para um espaço (' '), cin.ignore() extrairá apenas a primeira palavra e desconsiderará todos os outros caracteres até esse ponto.

Conclusão:

Para abordar questões relacionadas à entrada e fornecer controle exato sobre o buffer de entrada, o C++ função cin.ignore() é uma ferramenta útil. Os desenvolvedores podem lidar com caracteres indesejados com eficiência e obter o comportamento necessário em seus programas, compreendendo sua sintaxe, uso e princípio de funcionamento.

Os desenvolvedores podem garantir procedimentos de entrada precisos e antecipados usando o função cin.ignore() pular até um delimitador designado ou desconsiderar um conjunto de caracteres. Ao trabalhar com tipos de entrada mistos, a entrada numérica seguida pela entrada de string ou ao ler strings usando Obter linha() , esta função é bastante útil.

Os desenvolvedores podem evitar comportamentos inesperados causados ​​por caracteres remanescentes no buffer de entrada usando corretamente cin.ignore() . Ao limpar o buffer e permitir a leitura de novas entradas, esta função auxilia na manutenção da integridade das operações de entrada seguintes.

Para o tratamento adequado de várias condições de entrada, é imperativo compreender os parâmetros e o comportamento de cin.ignore() . Com a ajuda de cin.ignore() , os programadores podem criar poderoso e confiável sistemas de tratamento de entrada para seus Programas C++ , se desejam ignorar um único caractere ou pular até um delimitador.

Freddie Mercury nasceu

Em conclusão, o função cin.ignore() é uma parte crucial do processamento de entrada C++, pois permite aos programadores remover caracteres desnecessários e garantir operações de entrada precisas e contínuas. Compreender como usá-lo de forma eficaz pode melhorar consideravelmente a estabilidade e a usabilidade dos aplicativos C++.