Buenas,
Antes que nada perdón por repostear la pregunta, pero volví a agarrar un libro de programación y sigo con la misma duda.
No sabía si publicarlo acá o en Ingeniería Inversa, que capaz me pueden dar una imagen más clara.
Supongamos este ejemplo:
std::cout << "Mensaje de prueba" << std:endl;
Según dice el libro, el manipulador de flujos endl, inserta un caracter de nueva línea en el objeto cout y vacía el buffer de salida.
A que hace referencia con esto? Porque según veo, sin insertar endl y solo \n generaría el mismo resultado.
Gracias por la respuesta.
Un saludo.
cout << "Abc" << endl;
Viene siendo equivalente a:
cout << "Abc" << '\n' << flush;
Digo esto, porque a lo mejor lo ves en otros lugares con ese nombre, "flush".
Cuando tú envías datos a un stream, estos primero se almacenan en un buffer interno. Por ejemplo, si envías bytes a un archivo, es muy lento andar escribiendo 1 byte a 1 byte cada vez que quieres meter algo. Para evitar eso, se almacenan en un buffer interno, y luego, cuando llamas a esas funciones o 'automáticamente' (según), ese buffer se envía a su receptor (la consola en caso del cout), y el buffer se vacía.