Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
danilopenin

Problema com scanf

Recommended Posts

Uma parte de um programa que estou fazendo está assim:

for(K = 0; K <= 9; K++)

{

printf("Digite o %d caracter\n", K + 1);

scanf("%c", &szArray[K]);

}

Quando ele roda essa parte, ele pede o 1º caracter, informo, pressiono enter, aparece 2 mensagens pedindo outro caracter mas para eu informar somente 1 vez, ou seja, ele ta pulando de 2 em 2 o comando do scanf. A execucao ficou assim:

Digite o 1 caracter

a

Digite o 2 caracter

Digite o 3 caracter

b

Digite o 4 caracter

Digite o 5 caracter

c

...

Por que esta acontecendo isso??? Como eu faco para ele executar o scanf as 10 vezes?

Obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o getchar le uma tecla..... e nesse caso ele ta lendo o enter

o scanf tem esse problema de nao limpar o enter do buffer do teclado e por isso acaba passando para o proximo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
o getchar le uma tecla..... e nesse caso ele ta lendo o enter

o scanf tem esse problema de nao limpar o enter do buffer do teclado e por isso acaba passando para o proximo.

É exatamente isso que o Pozzzo disse. Em muitos lugares ao invés de getchar() ou getch() você poderá encontrar isso: fflush(stdin); apesar de funcionar na maioria das vezes isso está errado! o fflush(); deve ser usado somente para streams de saída e não de entrada como o teclado. Existem inúmeras discussões na internet sobre este assunto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×