Newsgroup: it.comp.lang.c
Titolo: "clearscreen" in ansi C

Salve a tutti,
 vorrei fare un piccolo programmino in cui si susseguono alcune
schermate e quindi avrei bisogno di poter cancellare, prima di
visualizzare quella successiva, la schermata  precedente.
A me interessa che questo programmino sia compilabile senza alcuna
modifica sia in Dos che in Linux.
Pero' credo che non ci sia una funzione "standard" per cancellare la
schermata, vero ?
E anche se volessi utilizzare una serie di printf che stampano a video
delle stringhe vuote (cioe' lunghe stringhe di caratteri "spazio") per
poter simulare una cancellazione video, poi non saprei come rimettere
il cursore in alto a sinistra....
Chi mi aiuta ?
Grazie. 
P.S. Naturalmente non voglio usare librerie tipo allegro, ncurses
ecc...

 Chi mi aiuta ?
#ifdef _IS_UNIX
	/* Unix con sh */
	int clrscr(void) { return (system("clear")); }
#else
	/* Dos con 
command.com
 */
	int clrscr(void) { return (system("cls")); }
#endif
E poi definisci _IS_UNIX a compile time (e.g.: con l'opzione -D di gcc).
PS: lo so che e` sporchissima, non c'e` bisogno di dirmelo.
Bye,
 Emmanuele.
-- 
I ... Owe ... You ... Pain! -- Willow, "Tough Love"
GnuPG Key ID: 0x788E3A3A
GnuPG Key FP: 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

scusa se ti posto in e-mail
...io uso gcc+rhide+win , puoi utilizzare gotoxy(x,y); e posizioni il
cursore dove vuoi, oppure
wherex , wherey ti ritorna la posizione del cursore.
Ciao  Roberto
"Hobbit" <mimmo....@NOSPAMtiscalinet.it> ha scritto nel messaggio
news:3b670014...@news.libero.it...


 wherex , wherey ti ritorna la posizione del cursore.
Non sono funzioni ANSI.
Bye,
 Emmanuele.
-- 
I ... Owe ... You ... Pain! -- Willow, "Tough Love"
Italian Buffy Resource Site (Beta) - 
http://www.ibrs.dns2go.com


Non sono funzioni ANSI.
Lo standard ANSI non prevede un codice escape per il clearscreen?

 Lo standard ANSI non prevede un codice escape per il clearscreen?
Non che io sappia.


> Lo standard ANSI non prevede un codice escape per il clearscreen?
si lo prevede......
e forse credo sia pure la 1. sequenza di escape, ma ora non ho le
sequenze qua :(
cod

schermata, vero ?
Se in DOS hai caricato il driver ANSI.SYS, dovresti poterlo fare con la
sequenza "\033[2J".
-- 
Saluti,
    Mardy
http://www.interlingua.com


Secondo un vecchio manuale \f ma a me non ha mai funzionato in W32consolle.
--
BlackDemon - bdemon(at)
iol.it

Secondo un vecchio manuale \f ma a me non ha mai funzionato in W32consolle.
Spero non fosse lo Shildt :P
L'ANSI non si preoccupa di cosa usi, un terminale a caratteri, una
stampante, una scimmietta che scrive su una tavoletta di argilla ...
lui manda l'output, ci deve pensare qualc'un altro a fornirti una
buona interfaccia per STDOUT (il costruttore, il domatore della
scimmietta)... vi assicuro che come il datagram IP viaggia
tranquillamente su un piccione viaggiatore la scimmia e' un ottimo
dispositivo di output :)
Avevo visto anch'io la possibilita' di usare \f per far avanzare la
pagina (non per cancellare a video, anche se alla fine il risultato e'
uguale) pero' non mi pareva granche' efficace, non credo fosse molto
standard.
Paolo :)

 Spero non fosse lo Shildt :P
Ah, povero cristo!!
no, era il manuale del Borland Turbo C++ 1.0
+ o - scritto quando sono nato io. O prima?
--
BlackDemon - bdemon(at)
iol.it

 Non che io sappia.
o meglio: lo standard ANSI per il C non si preoccupa minimamente delle 
sequenze di escape; esiste un altro standard ANSI per i terminali che 
specifica le sequenze di escape, ma che non c'entra nulla con il C. E che 
tra l'altro per essere attivate in DOS è necessario caricare il driver 
ANSI.SYS...
Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 > Chi mi aiuta ?
puoi usare le sequenze di escape...
bye



usare le sequenze di escape non e' una buona idea se ti capita di usare 
un terminale non ansi crei un casino di caratteri illeggibili sullo
schermo.
bye marco
--
www.scienzeinfo.it