CIN.ignorar em C ++

CIN.ignorar em C ++

Para desconsiderar ou remover letras únicas ou talvez mais do buffer de entrada usando o CIN.Método ignore (). Talvez precisemos remover o buffer indesejável para que os próximos dados sejam armazenados no contêiner pretendido, em vez do cache da variável anterior. Por exemplo, devemos fornecer uma matriz ou string de caracteres após a entrada do comando CIN. Como resultado, devemos esvaziar o buffer de entrada; caso contrário, o buffer da variável anterior seria ocupado. Como o cache do elemento anterior não tem espaço para reter novos dados, pressionando o botão "Enter" logo após a entrada inicial ignora a próxima entrada do contêiner do contêiner. Vamos começar com os exemplos do CIN.função ignore () com o lançamento de novos arquivos C ++ através do shell do terminal. O arquivo deve ser criado através da instrução Touch e o nome do arquivo. O editor "Nano" do Ubuntu foi usado até agora para abrir o arquivo para editar.

Exemplo 01:

Ao aplicar o comando nano, ignore.O arquivo CC seria aberto no editor. É hora de começar nosso primeiro exemplo. Em primeiro lugar, examinaremos o código C ++ sem usar o CIN.função ignore (). Então, nós começamos com duas bibliotecas de cabeçalho, eu.e., vetor e iostream. O espaço para nome é utilizado depois disso. A função principal () é iniciada com a declaração de uma variável inteira "num" e o tipo de caractere "str" ​​de tamanho 100 usado para armazenar algum valor de string. A declaração Cout pede a um usuário que adicione um valor inteiro e um tipo de string. A instrução CIN é usada para colocar o valor inteiro em variável "num" e CIN.getLine () é usado para obter os valores do tipo de string inseridos por um usuário para salvá -lo na variável "str" ​​até 100 caracteres. A próxima instrução Cout é utilizada para imprimir o valor inteiro e a string inserido pelo usuário no shell.

#incluir
#incluir
usando namespace std;
principal()
int num;
Char Str [100];
cout << "Please add one Integer and one String value:\n";
CIN >> num;
CIN.getLine (str, 100); // Pegue uma corda
cout << "Number :" << num << ", String: " << Str << endl;

Agora, o código foi compilado e executado. O usuário inseriu dois valores separados por um espaço, eu.e., Inteiro e string. Ambos os valores foram impressos conforme especificado.

Ao executar novamente, o usuário acrescentou 1 valor e pressionou Enter. A saída mostra um valor em troca e o valor da string está vazio.

Na terceira execução, um usuário adicionou um valor de string sem adicionar um valor inteiro. Em troca, a saída mostra o valor 0 para número e nulo para string.

Vamos atualizar o código adicionando o “CIN.ignorar () ”função após a instrução CIN. São necessários dois argumentos. Um é o cabeçalho do tamanho do fluxo numérico_limits para limpar o cache do buffer após o 1º valor e uma nova linha atraente i.e. "\ N". Portanto, a próxima variável "STR" receberá o valor depois que o usuário chegar à próxima linha.

#incluir
#incluir
usando namespace std;
principal()
int num;
Char Str [100];
cout << "Please add one Integer and one String value:\n";
CIN >> num; // Limpe o buffer antes de pegar a nova linha
CIN.ignore (numeric_limits:: max (), '\ n');
CIN.getLine (str, 100); // Pegue uma corda
cout << "Number :" << num << ", String: " << Str << endl;

Um usuário adicionou dois valores com um espaço. Depois de pressionar Enter, um usuário adicionou outro valor. Como resultado, a saída mostra o primeiro valor inteiro e o valor agregado da string na próxima linha. O CIN.ignore () levará o primeiro valor antes do espaço e o segundo valor da próxima linha após a limpeza do cache do buffer. Você pode ver, ele ignorou o valor do valor da string "ignorar" da primeira linha de entrada.

Exemplo 02:

Agora, estamos dando uma olhada em outro exemplo. Alguns arquivos de cabeçalho foram adicionados antes da função principal (). Dentro de uma função, o loop while continua a executar algumas declarações. Três variáveis ​​inteiras são declaradas, e a declaração cout pede para adicionar informações nessas variáveis. A instrução CIN salva os valores de entrada em variáveis, e a instrução "se" é usada para verificar se o primeiro valor é igual a 0 ou não. Se sim, ele sairá do programa imediatamente. Caso contrário, o programa continua. O CIN.A instrução ignore () está aqui para limpar o cache antes da próxima linha, e a instrução Cout exibirá os valores de entrada.

#incluir
#incluir
#incluir
#incluir
#incluir
usando namespace std;
int main ()
while (true)
int n1, n2, n3;
cout << "Please Type Space-separated 3 Numbers: " << endl;
CIN >> n1 >> n2 >> n3;
if (n1 == 0) exit (exit_success);
CIN.ignore (numeric_limits:: max (), '\ n');
cout <<"1st: "<
return exit_success;

Depois de executar este exemplo de código, o usuário adicionou três valores. O primeiro valor não é 0; Ele exibirá o 1º, 2º e 3º. O loop "while" continua novamente, e o usuário adiciona 0 como 1º valor inteiro. Em troca, o programa saiu sem execução adicional.

Exemplo 03:

O último exemplo é levar variáveis ​​de tipo de dois caracteres como entrada do usuário. Entre os dois.obtenha () linhas para obter valores, utilizamos o CIN.Ignore () função para limpar o cache do buffer ao encontrar o espaço. Se o usuário adicionar alguma string, CIN.get () só pegará seu inicial e o cout o exibirá conforme o código abaixo.

#incluir
#incluir
#incluir
#incluir
#incluir
usando namespace std;
int main ()
Char v1, v2;
cout << "Type Two words: " << endl;
v1 = CIN.pegar();
CIN.ignore (numeric_limits:: max (), ");
v2 = CIN.pegar();
cout << "Initials of both words are: "<return exit_success;

Após a execução, o usuário adicionou duas palavras enquanto a instrução Cout exibe apenas iniciais.

Conclusão:

Então, isso foi tudo sobre o uso do CIN.Ignore () Função em C ++ para limpar os buffers de cache. Usamos o espaço e os próximos caracteres de linha como delimitadores. Os exemplos implementados são muito fáceis de aprender e entender. Portanto, temos certeza de que você receberá ajuda de todos os exemplos.