Pergunta

Estou escrevendo uma ferramenta de linha de comando para o Mac OS X que processa vários arquivos. Gostaria de mostrar ao usuário o arquivo atual sendo processado, mas não deseja um Bazilhão de arquivos poluindo a janela do terminal.

Em vez disso, gostaria de usar uma única linha para emitir o caminho do arquivo e reutilizar essa linha para o próximo arquivo. Existe um personagem (ou algum outro código) para produzir para std::cout Para conseguir isso?

Além disso, se eu quisesse me alvo novamente dessa ferramenta para o Windows, a solução seria a mesma para as duas plataformas?

Foi útil?

Solução

" r" deve funcionar para o Windows e o Mac OS X.

Algo como:

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

Outras dicas

Não tenho acesso a um Mac, mas do ponto de vista puro do console, isso será amplamente dependente de como trata o retorno do carro e os caracteres de alimentação de linha. Se você pode literalmente enviar um ou outro para o console, deseja enviar apenas um retorno de carruagem.

Tenho certeza de que o Mac trata os retornos de carruagem e as alimentações de linha de maneira diferente de *nix e windows.

Se você está procurando atualizações no local (por exemplo, substitua a linha atual), eu recomendo olhar para o curses lib. Isso deve fornecer um meio independente de plataforma de fazer o que você está procurando. (Porque, mesmo usando C ++ padrão, não há meios independentes da plataforma do que você está solicitando).

std :: cout interpreta " r" como retorno ao bensidade da linha, se você não estiver adicionando "<< endl" a cada vez, use " n"

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top