istream y cin.get ()

Tengo una pregunta sobre la diferencia entre estas dos piezas de código:

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

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

y

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

En la primera parte del código, el código obtiene 5 caracteres y lo pone en buffer5. Sin embargo, debido a que presionas Intro, no se pone un carácter de nueva línea en la secuencia cuando se llama a get (), por lo que el programa terminará y no te pedirá otra ronda de 5 caracteres.

En la segunda parte del código, cin.get () espera la entrada al flujo de entrada, por lo que el bucle no termina (creo). Digamos que ingreso "Apple" en el flujo de entrada. Esto pondrá 5 caracteres en el flujo de entrada, y el bucle imprimirá todos los caracteres en la salida. Sin embargo, a diferencia de la primera parte del código, no se detiene, incluso después de dos entradas, ya que puedo seguir ingresando.

¿Por qué puedo ingresar continuamente secuencias de caracteres en el terminal en el segundo fragmento de código y no en el primero?

Respuestas a la pregunta(1)

Su respuesta a la pregunta