|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2008
Città: Messina
Messaggi: 991
|
[c] pulisci schermo
Esiste un'istruzione pulisci schermo che vada bene sia su UNIX che su WINDOWS?
__________________
PC/HTPC: Mac Mini 3,1 late 2009 | My Book Studio 2TB | LG M237WD monitor/tv | Logitech Z4 | Apple Magic Mouse | Apple Wireless Keyboard | Apple Remote Mobile: Samsung Galaxy Wonder i8150 cm9 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
no
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
#ifdef __WIN32
#define CLEARSCREEN clear #else #define CLEARSCREEN cls #endif system(CLEARSCREEN); |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
hai scordato gli apici doppi.
sei sicuro che clear vada bene su tutti gli Unix? |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2008
Città: Messina
Messaggi: 991
|
Tutto ciò mi è sconosciuto al momento.
Hai qualche link a guide che ne parlano o magari hai voglia di accennarmi tu qualcosa?! ![]() cmq grazie!
__________________
PC/HTPC: Mac Mini 3,1 late 2009 | My Book Studio 2TB | LG M237WD monitor/tv | Logitech Z4 | Apple Magic Mouse | Apple Wireless Keyboard | Apple Remote Mobile: Samsung Galaxy Wonder i8150 cm9 |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Giusto
![]() Almeno su tutti quelli che ho provato io sì ![]() Solaris, *BSD, Linux, Iris... Comunque meglio così: #include <stdlib.h> #define CLEARSCREEN "clear" #ifdef __WIN32 #define CLEARSCREEN "cls" #endif #ifdef __WIN64 #define CLEARSCREEN "cls" #endif system(CLEARSCREEN); Quelle con il # davanti sono direttive al preprocessore e dovresti conoscerle perché sono fondamentali per scrivere qualsiasi file .h. L'unica riga che devi ripetere nel programma ogni volta che vuoi cancellare la console è l'ultima. Non ti posso linkare una pagina perché, a parte poche (queste sono praticamente universali), cambiano da compilatore a compilatore. La struttura dei .h infatti DEVE essere questa: #ifndef __MYHEADERNAME_H #define __MYHEADERNAME_H #include <....> /*dichiarazioni*/ #endif Ultima modifica di cionci : 11-02-2009 alle 20:51. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Sep 2008
Città: Messina
Messaggi: 991
|
conoscevo solo
#define #include le altre istruzioni che hai scritto ancora non le avevo mai lette da nessuna parte... ![]()
__________________
PC/HTPC: Mac Mini 3,1 late 2009 | My Book Studio 2TB | LG M237WD monitor/tv | Logitech Z4 | Apple Magic Mouse | Apple Wireless Keyboard | Apple Remote Mobile: Samsung Galaxy Wonder i8150 cm9 |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
Codice:
#include <stdlib.h> #if defined(__WIN32) #define CLEARSCREEN "cls" #elif defined(__WIN64) #define CLEARSCREEN "cls" #else #define CLEARSCREEN "clear" #endif system(CLEARSCREEN); |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non mi sembra che ci sia l'obbligo di usare #undef per sovrascrivere il valore di un #define.
In ogni caso avevo lasciato la cosa più semplice possibile perché non sapevo il compilatore target, anche perché con le estensioni si fa tutto ed il contrario di tutto. Allora avrei potuto usare anche l'or ![]() Codice:
#include <stdlib.h> #if defined(__WIN32) || defined(__WIN64) #define CLEARSCREEN "cls" #else #define CLEARSCREEN "clear" #endif system(CLEARSCREEN); ![]() Ultima modifica di cionci : 11-02-2009 alle 23:02. |
![]() |
![]() |
![]() |
#10 | |||
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
Quote:
Quote:
|
|||
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non #elif...il defined(). Non ho usato defined() perché credevo fosse un'estensione, se avessi usato defined avrei usato l'or
![]() Su gcc ho provato prima di postare senza #undef...è per quello che l'avevo scritto così. Ero incerto se ci fosse o meno l'obbligo di usare #undef. |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Sep 2008
Città: Messina
Messaggi: 991
|
Funziona a meraviglia comunque eh!!!
![]() ![]() ![]()
__________________
PC/HTPC: Mac Mini 3,1 late 2009 | My Book Studio 2TB | LG M237WD monitor/tv | Logitech Z4 | Apple Magic Mouse | Apple Wireless Keyboard | Apple Remote Mobile: Samsung Galaxy Wonder i8150 cm9 |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Considera che le modalità per trattare le differenze di sorgente fra sistemi operativi diversi sono comunque queste.
Ovviamente devi anche avvantaggiarti dall'uso di librerie portabili, fra queste ti posso consigliare Boost (parte di questa verrà inclusa nel nuovo standard C++) e, per le applicazioni a finestra, QT 4. Se vai a vedere il sorgente di librerie come le QT troverai tante direttive condizionali ![]() Ultima modifica di cionci : 13-02-2009 alle 10:07. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:04.