evandrolnr Postado Maio 11, 2010 Denunciar Share Postado Maio 11, 2010 Pessoal, boa tarde! Sou novo em linguagem C, e estou fazendo um treinamento!Estou treinando para usar o Oracle ProC. O Oracle ProC que uso não tem a biblioteca <conio.h>Por isto, estou usando como entrada de dados a função scanf()Tenho um programa que recebe dois caracteres. O primeiro é solicitado e mostrado a seguir.O segundo, durante a execução, não é solicitado (o programa pula o comando).O que estou fazendo de errado? :huh: /* Adivinha1z.c */ #include <stdio.h> #include <stdlib.h> /* para system() e rand() */ int main() { char resp; /* resposta do usuário */ char resp1; printf("\n\nDigite uma letra:\n"); scanf("%c",&resp); printf("\nVocê digitou %c",resp); printf("\n\nDigite uma letra:\n"); scanf("%c",&resp1); printf("\nVocê digitou %c",resp1); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 evandrolnr Postado Maio 11, 2010 Autor Denunciar Share Postado Maio 11, 2010 Pessoal, descobri o que estava errado. O Enter ocupa um caracteres, portanto quando digito 'a'<enter> estou digitando dois caracteres. Para driblar este problema, o programa precisa prever um caractere enter. :rolleyes: /* Adivinha1z.c */ #include <stdio.h> #include <stdlib.h> /* para system() e rand() */ int main() { char resp; /* resposta do usuário */ char resp1; char enter; printf("\n\nDigite uma letra:\n"); scanf("%c%c",&resp,&enter); printf("\nVocê digitou %c",resp); printf("\n\nDigite uma letra:\n"); scanf("%c%c",&resp1,&enter); printf("\nVocê digitou %c",resp1); return 0; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Maio 11, 2010 Denunciar Share Postado Maio 11, 2010 Acho que isso deve funcionar também, e sem "prejudicar" seu código:/* Adivinha1z.c */ #include <stdio.h> #include <stdlib.h> /* para system() e rand() */ int main() { char resp; /* resposta do usuário */ char resp1; printf("\n\nDigite uma letra:\n"); scanf("%c%*c",&resp); printf("\nVocê digitou %c",resp); printf("\n\nDigite uma letra:\n"); scanf("%c%*c",&resp1); printf("\nVocê digitou %c",resp1); return 0; }Porém, não testei.Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 evandrolnr Postado Maio 13, 2010 Autor Denunciar Share Postado Maio 13, 2010 Eu testei a última solução proposta e funcionou.Obrigado! :rolleyes: Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
evandrolnr
Pessoal, boa tarde! Sou novo em linguagem C, e estou fazendo um treinamento!
Estou treinando para usar o Oracle ProC. O Oracle ProC que uso não tem a biblioteca <conio.h>
Por isto, estou usando como entrada de dados a função scanf()
Tenho um programa que recebe dois caracteres. O primeiro é solicitado e mostrado a seguir.
O segundo, durante a execução, não é solicitado (o programa pula o comando).
O que estou fazendo de errado? :huh:
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.