Pregunta

Estoy escribiendo una herramienta de línea de comandos para Mac OS X que procesa un montón de archivos. Quisiera mostrar al usuario el archivo actual que se está procesando, pero no quiero un bazillion archivos contaminantes la ventana de terminal.

En su lugar me gustaría utilizar una única línea de salida de la ruta del archivo, a continuación, volver a utilizar esa línea para el siguiente archivo. ¿Hay un personaje (o algún otro tipo de código) para dar salida a std::cout para lograr esto?

Además, si quería volver a dirigirse a esta herramienta para Windows, sería la solución será el mismo para ambas plataformas?

¿Fue útil?

Solución

"\ r" debe trabajar para Windows y Mac OS X.

Algo así como:

std::cout << "will not see this\rwill see this" << std::flush;
std::cout << std::endl; // all done

Otros consejos

No tengo acceso a un Mac, pero desde el punto de vista de la consola pura, esto va a depender en gran medida de la forma en que trata a los caracteres de retorno y la línea de alimentación de carro. Si puede enviar literalmente uno o el otro a la consola, que desea enviar solo un retorno de carro.

Estoy bastante seguro de golosinas Mac ambos retornos de carro y saltos de línea diferente que * nix y ventanas.

Si usted está buscando actualizaciones en-sitio (por ejemplo, sobrescribir la línea actual), te recomiendo mirar el lib curses. Esto debería proporcionar una plataforma de medios independientes de hacer lo que estás buscando. (Porque, incluso utilizando C ++ estándar, no hay medios independientes de la plataforma de lo que estás pidiendo).

std :: cout Intérpretes "\ r" como el regreso al principio de la línea, si no whant a añadir "<< endl" cada vez, el uso de "\ n"

std::cout << "this will work!\nSee... a new line!" << std::endl;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top