Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Jooa

pequenas duvidas

Recommended Posts

Jooa

estou a começar a desenvolver um projecto em C

para isso dividi o trabalho em etapas e começei por fazer a parte gráfica do programa.

o programa é apresentado em consola do DOS, alguém sabe-me dizer o que posso fazer para tirar aquelas palavras que surgem no final da janela? - "Prima qualquer tecla para continuar . . ."

a minha segunda duvida é que o programa inicialmente funciona através de menus qual o comando para limpar a tela, uma vez que vou andar a "navegar" por menus e cada vez que passar de um para o outro gostaria que a tela fosse limpa

desculpem chatear vos com duvidas destas

cumprimentos

Share this post


Link to post
Share on other sites
IRX773

Quanto à primeira dúvida não sei explicar. Quanto à segunda caso estejas a usar windows, usa a biblioteca <stdio.h> e a <stdlib.h> e podes usar um comando do ms-dos que é o CLS que te limpa o ecrã. A sua utilização seria

system("CLS");

Share this post


Link to post
Share on other sites
Baderous

estou a começar a desenvolver um projecto em C

para isso dividi o trabalho em etapas e começei por fazer a parte gráfica do programa.

o programa é apresentado em consola do DOS, alguém sabe-me dizer o que posso fazer para tirar aquelas palavras que surgem no final da janela? - "Prima qualquer tecla para continuar . . ."

Isso só aparecer porque estás a usar o system("PAUSE") no fim. Retira isso e susbstitui por um getchar().

a minha segunda duvida é que o programa inicialmente funciona através de menus qual o comando para limpar a tela, uma vez que vou andar a "navegar" por menus e cada vez que passar de um para o outro gostaria que a tela fosse limpa

Mais uma vez, não deves usar a sugestão dada pelo IRX773 porque ele está a fazer uma chamada ao sistema para limpar o ecrã, o que, para além de ser um processo pesado, torna a tua aplicação dependente do SO. Para limpar, podes simplesmente imprimir um conjunto de '\n' até desaparecer o que tinhas.

Share this post


Link to post
Share on other sites
IRX773

Mais uma vez, não deves usar a sugestão dada pelo IRX773 porque ele está a fazer uma chamada ao sistema para limpar o ecrã, o que, para além de ser um processo pesado, torna a tua aplicação dependente do SO. Para limpar, podes simplesmente imprimir um conjunto de '\n' até desaparecer o que tinhas.

E não há nenhuma função nativa em C que faça isso? É que o system("CLS") é mais bonito que muitos \n's  ;)

Share this post


Link to post
Share on other sites
Baderous

E não há nenhuma função nativa em C que faça isso? É que o system("CLS") é mais bonito que muitos \n's  ;)

Não conheço nenhuma.

Share this post


Link to post
Share on other sites
Jooa

Isso só aparecer porque estás a usar o system("PAUSE") no fim. Retira isso e susbstitui por um getchar().

Mais uma vez, não deves usar a sugestão dada pelo IRX773 porque ele está a fazer uma chamada ao sistema para limpar o ecrã, o que, para além de ser um processo pesado, torna a tua aplicação dependente do SO. Para limpar, podes simplesmente imprimir um conjunto de '\n' até desaparecer o que tinhas.

é que quando uso o getchar() as palavras saem é verdade, mas estou a usar um switch os cases do switch têm como output printf's e mal escolho uma hipótese do switch o programa fecha-se logo :S

Share this post


Link to post
Share on other sites
Baderous

Isso deve ser porque tens conteúdo no buffer, e esse deve ser limpo antes da invocação do getchar(). Usa isto:

scanf("%*[^\n]");
scanf("%*c");

Share this post


Link to post
Share on other sites
Baderous

O 1º scanf lê e descarta todos os caracteres até ao '\n'. O 2º descarta um caracter (neste caso o '\n').

Share this post


Link to post
Share on other sites
Localhost

Não faz parte do Ansi-C, não é recomendável usar devido à portabilidade (refiro-me a Linux).


here since 2009

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.