istream e cin.get ()

Eu tenho uma pergunta sobre a diferença entre esses dois pedaços de código:

char buffer5[5];
cin.get(buffer5, 5);
cout << buffer5;

cin.get(buffer5, 5);
cout << buffer5;

e

char buffer4;
while (cin.get(buffer4))
{
    cout << buffer4;
}

Na primeira parte do código, o código obtém 5 caracteres e coloca-o no buffer5. No entanto, como você pressiona enter, um caractere de nova linha não é colocado no fluxo ao chamar get (), portanto, o programa será encerrado e não solicitará outra rodada de 5 caracteres.

Na segunda parte do código, cin.get () aguarda a entrada para o fluxo de entrada, então o loop não termina apenas (acho). Vamos dizer que eu insiro "Apple" no fluxo de entrada. Isso colocará 5 caracteres no fluxo de entrada e o loop imprimirá todos os caracteres na saída. No entanto, ao contrário do primeiro trecho de código, ele não para, mesmo depois de duas entradas, pois posso continuamente continuar inserindo.

Por que posso inserir continuamente sequências de caracteres no terminal no segundo trecho de código e não no primeiro?

questionAnswers(1)

yourAnswerToTheQuestion