2010-12-08 21 views
5

¿Es posible cambiar el texto impreso con "cout"? Me gustaría que muestre el porcentaje actual de algo sin tener que tener una nueva línea para cada porcentaje. es posible?C++ Cambiar salida de "cout"

+0

cout se supone que no es un resumen de una consola, aunque la mayoría de los terminales interpretarán con gusto el carácter de retorno de carro correctamente. – lijie

+0

¿Qué es para consola entonces? – nebkat

+0

necesita aclarar su pregunta, no está claro lo que está tratando de lograr y lo que significa "cambio". –

Respuesta

11

Esto funciona para mí:

std::cout << "1111"; 
std::cout << "\r"; 
std::cout << "2222"; 

\r es un símbolo de retorno de carro. Coloca el "cursor" al comienzo de la línea.

Como alternativa, puede usar el carácter \b. Esto es retroceso Cuando se imprime, va un personaje atrás.

+0

Tiene 3 '\ r' (retorno de carro) más de lo que realmente necesita (a menos que quiera decir' \ b', retroceso) – Hasturkun

+0

Gracias, ya he editado eso. – detunized

+0

El símbolo de fin de línea correcto es "\ n", no "\ r". La biblioteca estándar interpretará "\ n" como CR-LF, LF-CR o lo que sea apropiado para su plataforma. También hay std :: endl, que además obliga a enjuagar el buffer. –

1

En general, no es posible. (imagine que la salida de cout se envía directamente a una impresora. ¿Cómo le indicaría que "anule la impresión" de la última línea?) cout es un flujo de salida, no hace suposiciones sobre a qué medio se envía la salida, o sobre el capacidades de ese medio. Los trucos específicos pueden lograr lo que quieras en algunos casos, pero fallarán horriblemente en otros. Si desea algo más dinámico que la salida directa de texto sin formato, quizás cout no sea la herramienta adecuada.

0

Una cosa que definitivamente no obtendrás de cout es la longitud de la línea de terminal. Como esto se puede cambiar, puede usar líneas demasiado largas, que (usando '\ r') causarán la impresión de nuevas líneas en cada actualización. Si desea utilizar una plataforma específica, utilice las funciones específicas de la plataforma para obtener el tamaño de la terminal (tenga en cuenta que podría no estar conectado a ningún terminal, por ejemplo, redirigido a un archivo).