Ir ao conteúdo
  • Cadastre-se

Erro na leitura de int e char


barutaji

Posts recomendados

postei um código simples aqui no fórum. Tão simples que não testei, mas quando resolvi testar aconteceu um erro inesperado.

int main(){    int a;    char b, c;
    printf ("Digite o numero: ");    scanf ("%d",&a);    printf ("\nDigite outro numero: ");    scanf ("%c", &;        c=a;    printf ("%d   ",c);    printf ("%c\n",c);    c=b;    printf ("%d   ",c);    printf ("%c\n",c);
   system ("pause");   return 0;}

Assim que digito o 1º número o segundo sai igual automaticamente e quando vai escrever dá erro e só escreve um deles.

Digite o numero: 65Digite outro numero: 65   A10

Já tentei com números de um dígito mas dá no mesmo. Mostra o valor na tabela e 10(sempre aparece o 10). Sei que se limpar o stdin vai resolver, mas gostaria de entender o que aconteceu. Alguem poderia dar uma dica?

Link para o comentário
Compartilhar em outros sites

você posto esse codigo no meu topico ai fui testa e vi isso tambem mais então

quando você digita uma letra e aperta enter dois caracteres estão no buffer, a

letra e o enter, o scanf so captura o primeiro caracter, a letra, deixando o

enter ainda no buffer, se voce chamar o scanf novamente, ele ira capturar o

enter que ficou no buffer 'automaticamente', e nao ira pausar para entrada de

dados, por isso ele "está pulando para a próxima instrução"

então coloca um getchar(); antes do segundo printf pra esse getchar pegar o

enter que ta no buffer

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!