Domanda

Sto scrivendo un tool a linea di comando per Mac OS X che elabora un gruppo di file. Vorrei mostrare all'utente il file corrente in fase di elaborazione, ma non vogliono un file bazillion inquinanti finestra del terminale.

Invece vorrei utilizzare un'unica linea per l'uscita del percorso del file, quindi riutilizzare quella linea per il file successivo. C'è un personaggio (o qualche altro codice) per l'output std::cout per raggiungere questo obiettivo?

Inoltre, se volevo ri-indirizzare questo strumento per Windows, sarebbe la soluzione è la stessa per entrambe le piattaforme?

È stato utile?

Soluzione

"\ r" dovrebbe funzionare per Windows e Mac OS X.

Qualcosa di simile:

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

Altri suggerimenti

Non ho accesso a un mac, ma dal punto di vista console pura, questo sta per essere in gran parte dipende dal modo in cui tratta i personaggi di ritorno e line-feed in carrozza. Se si può letteralmente inviare uno o l'altro per la console, che si desidera inviare solo un ritorno a capo.

Sono abbastanza sicuro Mac tratta sia ritorni a capo e line-feed in modo diverso rispetto * nix e finestre.

Se siete alla ricerca di aggiornamenti sul posto (ad esempio sovrascrittura la riga corrente), io consiglierei di guardare il lib curses. Questo dovrebbe fornire una piattaforma mezzi indipendenti di fare quello che stai cercando. (Perché, anche con lo standard C ++, non esiste una piattaforma mezzi indipendenti di quello che stai chiedendo).

std :: cout interpreti, "\ r" come ritorno all'inizio della riga, se non whant di essere l'aggiunta "<< endl" di volta in volta, l'uso "\ n"

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top