PDA

View Full Version : ripulire lo schermo in C


cat78
14-03-2003, 18:25
come da oggetto avrei bisogno di farmi una funzione in C che mi ripulisca lo schermo della consolle (in pratica quello che fa la clrscr() di alcuni compilatori <<DOS-oriented>> tipo il TurboC), pero' posso utilizzare SOLO funzioni di libreria ANSI-C.

mi sapreste dare qualche dritta? non so proprio da dove partire.

misterx
14-03-2003, 19:16
non è molto elegante ed è molto banale:

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n");

oppure

printf("%c",12); o era 10??? // = avanzamento di una pagina

cat78
14-03-2003, 20:43
eh.. purtroppo non va bene per quello che devo fare.

Mi serve proprio ripulire lo schermo perche' anche se l'applicativo viene lanciato da una finestra di consolle e non da consolle vera e propria, il risultato deve essere un refresh della schermata e non deve essere possibile rivedere i dati precedenti muovendo la scrollbar.

grazie cmq :)

qualche altra idea?

misterx
14-03-2003, 21:07
con


system cls?


non ricordo la sintassi

cat78
14-03-2003, 21:37
si' ci avevo pensato.. pero' non si puo' fare perche' l'applicativo deve funzionare su sistemi diversi (es. dos, windows, linux, unix, freebsd, ecc...) e quindi, essendo i comandi per il clear dello schermo diversi da sistema a sistema, dovrei inventarmi qualcosa per far sì che il codice sia "compilabile e funzionante" nei vari casi.

e' anche per questo che sto cercando di usare solo funzioni ANSI-C.

cionci
15-03-2003, 01:22
Non c'è un metodo standard...
#ifdef _WIN32
#define CLEAR "cls"
#endif

#ifdef _UNIX //non mi ricordo se è questa la costante definita per tutti gli Unix e Linux
#define CLEAR "clear"
#endif


Dopo usi:

system(CLEAR);

cat78
15-03-2003, 17:09
allora mi devo rassegnare :(

vabbè allora faro' come mi avete suggerito :)

ma come funzionano quelle costanti? (mi riferisco a _WIN32, _UNIX ecc...)
che header devo includere per usarle?

tnx

cionci
15-03-2003, 17:34
Dipende dal compilatore...è predefinita al suo interno...

/\/\@®¢Ø
15-03-2003, 18:35
Originally posted by "cat78"

come da oggetto avrei bisogno di farmi una funzione in C che mi ripulisca lo schermo della consolle (in pratica quello che fa la clrscr() di alcuni compilatori <<DOS-oriented>> tipo il TurboC), pero' posso utilizzare SOLO funzioni di libreria ANSI-C.

mi sapreste dare qualche dritta? non so proprio da dove partire.

che tipo di gestione della console fai ? Utilizzi qualche libreria particolare ?