Limpar um buffer de entrada no seu programa C + + é importante quando você precisa descartar dados preexistente no córrego. Isso ocorre com freqüência como um processo de verificação de erros de rotina, ou em situações em que você só acessar parte dos dados do buffer de entrada do fluxo e , em seguida, deseja usar o fluxo de novo. Limpar o buffer de entrada é feito limpando o estado do fluxo com a função de "limpar " e , em seguida, chamar a função "ignorar " para descartar quaisquer caracteres restantes do buffer. Instruções
1
Abra o arquivo C + + em um editor , como o Microsoft Visual Studio Express.
2
Incluir o " iostream " e cabeçalhos " fstream " , acrescentando o seguinte código na parte superior do seu arquivo + C +:
# include # include using namespace std;
3 Criar um " fstream "objeto e abrir um arquivo com ele , adicionando o seguinte código na sua função :
fstream f ( " example.txt " , fstream :: in) ;
o " fstream :: em " parâmetro define o fluxo para permitir apenas operações de entrada
4
Executar uma operação de saída no fluxo adicionando o seguinte código: .
f <<" tentando saída de texto ";
a operação de saída irá falhar e definir o estado do fluxo para " . failbit "porque o fluxo é definido somente para permitir que as operações de entrada
5
Limpe a entrada tampão com as " claras " e " ignorar" as funções , adicionando o seguinte código:
if ( f.fail ()) { f.clear (); f.ignore ( INT_MAX , '\\ n' );}
a função " clear" apaga todas as bandeiras de erro e retorna o estado do fluxo para os extractos de "ignorar" de função e ignora até personagens " INT_MAX " ou até " goodbit ". encontra um '\\ n' caractere de nova linha . A variável " INT_MAX " é o valor máximo para o "int" tipo de dados e é dependente do sistema .
6
Salve o arquivo C + +. Compilar e executar o programa para limpar o buffer de entrada.