nunolevezinho Posted June 2, 2013 at 09:21 AM Report #510521 Posted June 2, 2013 at 09:21 AM Boas, estou a fazer um projecto para a escola e um dos pontos a ser avaliado é a portabilidade. Estou a programar em Windows e para "limpar" o ecrã, uso o system("cls); #define CLEAR_SCREEN() system("cls"); Mas pelo que sei, em linux não é cls mas é clear. Como posso resolver este tipo de situações ?
pmg Posted June 2, 2013 at 09:43 AM Report #510523 Posted June 2, 2013 at 09:43 AM (edited) De acordo com a documentacao do MSDN, podes usar a macro predefinida _WIN32 com o Visual Studio. #ifdef _WIN32 # define CLEAR_SCREEN() system("cls") #else # define CLEAR_SCREEN() system("clear") #endif Muitos compiladores para Unix/Linux definem a macro unix. Podes fazer o teste "ao contrario" #ifdef unix # define CLEAR_SCREEN() system("clear") #else # define CLEAR_SCREEN() system("cls") #endif Outra maneira, talvez mais usual em questoes de portabilidade, é fazeres o teu programa sem necessidade de limpar o ecra. Dessa forma funciona também no microprocessador do elevador do teu prédio, ou no micro-ondas la de casa, ou no Rover que esta em Marte ... Edited June 2, 2013 at 09:48 AM by pmg What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
nunolevezinho Posted June 2, 2013 at 07:30 PM Author Report #510580 Posted June 2, 2013 at 07:30 PM Necessitar, eu não necessito, era mais por uma questão de "beleza". Mas existe outra forma de limpar o ecrã sem ser uma dessas ?
pmg Posted June 2, 2013 at 07:45 PM Report #510581 Posted June 2, 2013 at 07:45 PM (edited) Nenhuma forma de limpar o ecra é 100% portavel. Lembra-te que ha sistemas com compiladores de C que nao teem ecra! Outra maneira seria usar curses (ncurses em Linux, pdcurses em Windows) e a instrucao clrscr(); A "beleza" é muito subjectiva! Eu trabalho muito com a linha de comando (em Windows) e gosto de ver o que escrevi ha 5 minutos atras. Se um dos programas que uso fizer system("cls"); limpa-me o historico e eu nao acho nada bonito :-) Edited June 2, 2013 at 07:47 PM by pmg What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
nunolevezinho Posted June 2, 2013 at 08:44 PM Author Report #510587 Posted June 2, 2013 at 08:44 PM Thanks! Solved 👍
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now