[EDITADO][C++] \n y endl

Iniciado por csp, 14 Septiembre 2013, 20:30 PM

0 Miembros y 4 Visitantes están viendo este tema.

csp

Buenas,

Cuál es la diferencia entre usar \n y std:endl? Tengo entendido que hacen algo muy similar (ambos pasan el cursor a la línea siguiente), pero no logro entender la diferencia.

Muchas gracias.
Un saludo.

eferion

La secuencia para generar un salto de línea es algo dependiente del sistema operativo. Es decir, no es igual para Windows, Linux o Mac.

std::endl encapsula ese cambio y te proporciona la secuencia adecuada independientemente del sistema operativo sobre el que corra el programa.

\n pues te dará resultados diferentes e inesperados dependiendo de la plataforma sobre la que se ejecute tu programa.

csp

#2
Muchas gracias por la aclaración eferion.


Edito:
Según entendí, las siguientes instrucciones son equivalentes:

Código (cpp) [Seleccionar]
std::cout << "Linea de prueba 1" << std::endl;
Código (cpp) [Seleccionar]
std::cout << "Linea de prueba 2\n" << std::flush;

Hay alguna manera (Quizás esté diciendo cualquier cosa), de ver el buffer para poder visualizar de manera gráfica los momentos en los cuales está vacío y cuando tiene información?

Un saludo.

Eternal Idol

Como ya te dijeron la segunda manera no es portable como la primera ... ¿Que es lo que queres hacer exactamente?
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

amchacon

Cita de: Eternal Idol en 15 Octubre 2013, 10:45 AM
Como ya te dijeron la segunda manera no es portable como la primera ... ¿Que es lo que queres hacer exactamente?
Querrás decir que la primera no es portable.

Cita de: csp en 14 Septiembre 2013, 21:00 PMHay alguna manera (Quizás esté diciendo cualquier cosa), de ver el buffer para poder visualizar de manera gráfica los momentos en los cuales está vacío y cuando tiene información?
¿Buffer? Olvídate de esas cosas en C++.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

Eternal Idol

Cita de: amchacon en 15 Octubre 2013, 14:05 PMQuerrás decir que la primera no es portable.

No, quise decir lo que dije. std::enld es portable y \n no.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

amchacon

Cita de: Eternal Idol en 15 Octubre 2013, 14:22 PM
No, quise decir lo que dije. std::enld es portable y \n no.
Entonces te referías a la primera como he dicho xD
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

csp

Buenas,

Como std::endl aparte de hacer un salto de línea también limpia el buffer, mi duda es si hay alguna manera (Ya sea con C++, asm, o a través de un depurador) de 'ver' los valores actuales en el buffer, para visualizar de una manera un poco más gráfica el estado del mismo antes y después de usar esta instrucción.

No se si se podrá hacer o si estoy diciendo cualquier cosa, pero me quiero sacar la duda.

Muchas gracias a ambos.
Un saludo.

PD: Gracias por leer el mp EI.

Eternal Idol

Cita de: amchacon en 15 Octubre 2013, 14:26 PM
Entonces te referías a la primera como he dicho xD

No, lee de nuevo todo el hilo con atencion, yo respondi al ultimo mensaje de csp que precedia al mio.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

eferion

Cita de: csp en 15 Octubre 2013, 15:19 PM
Buenas,

Como std::endl aparte de hacer un salto de línea también limpia el buffer, mi duda es si hay alguna manera (Ya sea con C++, asm, o a través de un depurador) de 'ver' los valores actuales en el buffer, para visualizar de una manera un poco más gráfica el estado del mismo antes y después de usar esta instrucción.

No se si se podrá hacer o si estoy diciendo cualquier cosa, pero me quiero sacar la duda.

Muchas gracias a ambos.
Un saludo.

PD: Gracias por leer el mp EI.

puedes mirar la posición de la memoria de vídeo, "sacarle una foto", ejecutar el comando, "sacar otra foto" y comparar los dos estados para comprobar las diferencias.