Dúvida rápida em C

13. Problema Resolvido!

Rinaldo Adilson da Silva
fantasmazul

(usa OpenSuSE)

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.


  


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

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

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

Rinaldo Adilson da Silva
fantasmazul

(usa OpenSuSE)

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

Geraldo José Ferreira Chagas Júnior
gjr_rj

(usa Debian)

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

Jeffeson Luiz Oliveira de Campos
foguinho.peruca

(usa Ubuntu)

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

Daniel
code0

(usa Slackware)

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



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts