Funções de entrada usam buffer e o modo como elas manipulam o buffer pode trazer alguns transtornos quando precisamos ler mais de uma entrada.
A maioria das funções de entrada deixam resquício no buffer, ou seja, extraem o conteúdo e deixam o ENTER no final do buffer.
Então a próxima função de entrada percebendo que já existe o caracter ENTER aceita imediatamente este buffer vazio como entrada, ou seja, como o usuário já estivesse apertado ENTER sem digitar nada.
Solução
Use a função cin.ignore()
logo após o uso de uma função de entrada.
Ela irá limpar esse ENTER ('\n') que ficou no buffer e a próxima instrução de entrada irá funcionar normalmente.
Nota
No Visual Studio, use std::cin.ignore()
Nenhum comentário:
Postar um comentário