Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Localhost

Problemas no input

Mensagens Recomendadas

Localhost

Olá pessoal, eu tenho aqui uns problemas que me "atormentam" há algum tempo que são os problemas de input.

É o seguinte. Às vezes quando faço um programa mais longo e quando peço muitas vezes o input do usuário o que acontece é que ele "salta" a parte do input, ou seja não espera que o usuário digite alguma coisa. Já vi algo relacionado com limpar o buffer, alguém me podia explicar como posso fazer isso?


here since 2009

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Baderous

Sim. Às vezes basta colocar apenas o 2º scanf, por exemplo, quando sabes que existe apenas 1 caracter no buffer. Nos outros casos usas as 2.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Localhost

Só uma coisa, eu criei uma função que é utilizada para limpar o buffer. Agora quando eu peço o input ele espera até digitar o input e depois ainda espera mais até carregar outra vez enter, estou a usar a função fgets para receber o input, existe alguma maneira de resolver isto?


here since 2009

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Baderous

Penso que nos casos em que o buffer está limpo, obriga a que coloques lá algo para os scanfs lerem. Daí ser preciso ver onde é que é preciso aplicar, e se são necessários os 2 scanfs.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Localhost

Qual é que é realmente a melhor função para input? É que a fgets não me deixa limpar o buffer (a não ser que eu leia um \n automaticamente para a pessoa não ter de carregar enter), a scanf "personalizada" não me deixa comparar strings, a scanf normal é perigosa devido ao buffer overflow, então não sei qual a função que hei-de usar  :bored:


here since 2009

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.