Pular para o conteúdo

Dúvida rápida em C

Responder tópico
  • Denunciar
  • Indicar
01 02

13. Problema Resolvido!

Enviado em 17/02/2008 - 23:04h

Olha eu não cheguei a testar o seu comando ai, mas o que ocorreu foi isso mesmo, sujeira no buffer do teclado.

Resolvi o problema com o comando __fpurge(stdin)

Não sabia que o fflush (stdin) NÃO FUNCIONAVA no linux.

Galera valeu pela ajuda, muito obrigado mesmo e ah... esse comando eu achei no vivaolinux mesmo.

Responder tópico

14. Re: Dúvida rápida em C

Enviado em 17/02/2008 - 23:10h

Só um detalhe, esse comando não é portável. Mas vale para aprendizado. Existem soluções melhores...


Abraços

15. Re: Dúvida rápida em C

Enviado em 17/02/2008 - 23:35h

f_Candido seu comando funcionou perfeitamente, valeu e obrigado pela paciência.

16. Re: Dúvida rápida em C

Enviado em 18/02/2008 - 00:17h

fantasmazul

vim pedir desculpas pois escrevi um série de besteira na minha resposta, não sei se foi por ser tarde e eu estar cheio de sono. Só sei que agora lendo suas dúvidas posteriores fui reler minha resposta e não acreditei no que vi.
Quando escrevi sobre getchar na realidade queria dizer getche, porém getche não funciona no linux.

getchar realmente precisa do <enter>, por isso o seu código não funcionou, pois ao declara a variável como char e usá-la no getchar a variável recebeu a tecla precionada e deixou o \n sujando o buffer. O resto que escrevi está correto.
Vi que você conseguiu o que queria, porém, queria retificar o que escrevi.

17. função útil

Enviado em 18/02/2008 - 01:55h

Opa! Bem vindo ao muundo da programação... ^^
Cara, usa a função:
fflush(stdin)

ela serve pra limpar a entrada padrão de dados (normalmente é o teclado)....

você não tá conseguindo entrar no laço pq o buffer da entrada padrão tá cheio de trankeira (como se fosse um arq de texto cheio d coisa escrita) e a função scanf pega o primeiro caracter q ele vê lá...
tive um prob semelhante qdo comecei a prog na facul... lembro q foi um deus nos acuda pq ng conseguia resolver o msm prob no trab final da disciplina... ^^''...

espero ter ajudado... depois posta a solução, blz?

t+
Jeff

18. Re: Dúvida rápida em C

Enviado em 25/02/2008 - 12:44h

Eu particularmente nao gosto de utilizar funcoes da libc ou posix pra esse tipo de coisa. Prefiro trabalhar com ponteiros de memoria quando utilizo matrizes. Por exemplo:

char resp[2];

*resp=0; // idem a resp[0];
*(resp+1)=0; // idem a resp[1];

Ainda existe a funcao bzero, que zera o conteudo de uma area de memoria.

bzero(resp,sizeof(resp));


01 02

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder